• VB.NET验证码生成代码


    前台代码为:
        <asp:image id="Image2" runat="server" ImageUrl="ValidateCode.aspx">
    ValidateCode.aspx文件的代码为:
            Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
                list()
            End Sub
            Function list()
                
    '在此处放置初始化页的用户代码
                'rndnum是一个自定义函数
                Dim vnum As String = rndnum(4)
                Session("vnum"= vnum
                validatecode(vnum)
            End Function
            
    '生成图象验证码函数
            Sub validatecode(ByVal vnum)
                Dim img As System.drawing.Bitmap
                Dim g As Graphics
                Dim r As Random = New Random
                Dim gheight As Integer = Int(Len(vnum) * 13)
                
    ''gheight为图片宽度,根据字符长度自动更改图片宽度
                img = New Bitmap(gheight, 20)
                g = Graphics.FromImage(img)
                
    'g.DrawString(vnum, New System.Drawing.Font("Arial", 10), New System.Drawing.SolidBrush(Color.Blue), 3, 3)
                '新增,修改
                '画图片的背景噪音线
                'For i As Integer = 0 To 25
                For i As Integer = 0 To 10
                    Dim x1 As Integer
                    x1 = r.Next(img.Width)
                    Dim x2 As Integer = r.Next(img.Width)
                    Dim y1 As Integer = r.Next(img.Height)
                    Dim y2 As Integer = r.Next(img.Height)
                    g.DrawLine(New Pen(Color.Silver), x1, y1, x2, y2)
                Next i
                Dim font As font
                font = New System.Drawing.Font("Arial"12)
                Dim brush As System.Drawing.Drawing2D.LinearGradientBrush
                brush = New System.Drawing.Drawing2D.LinearGradientBrush(New Rectangle(00, img.Width, img.Height), Color.Blue, Color.Blue, 1.2F, True)
                g.DrawString(vnum, font, brush, 22)

                
    ''画图片的前景噪音点 
                
    'For ii As Integer = 0 To 100
                '    Dim x As Integer = r.Next(img.Width)
                '    Dim y As Integer = r.Next(img.Height)
                '    img.SetPixel(x, y, Color.FromArgb(r.Next()))
                'Next

                
    '画图片的边框线 
                g.DrawRectangle(New Pen(Color.Silver), 00, img.Width - 1, img.Height - 1)

                
    '在矩形内绘制字串(字串,字体,画笔颜色,左上x.左上y) 
                Dim ms1 As System.IO.MemoryStream
                ms1 = New System.IO.MemoryStream
                img.Save(ms1, System.Drawing.Imaging.ImageFormat.Png)
                Response.ClearContent() '需要输出图象信息 要修改HTTP头 
                Response.ContentType = "image/Png"
                Response.BinaryWrite(ms1.ToArray())
                g.Dispose()
                img.Dispose()
                Response.End()

            End Sub
            
    '--------------------------------------------
            '函数名称:rndnum
            '函数参数:vcodenum--设定返回随机字符串的位数
            '函数功能:产生数字和字符混合的随机字符串
            '--------------------------------------------
            Function rndnum(ByVal vcodenum)
                
    'Dim vchar As String = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,W,X,Y,Z"
                Dim vchar As String = "2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,J,K,L,N,P,Q,R,S,T,U,X,Y,Z"
                Dim vcarray() As String = Split(vchar, ","'将字符串生成数组
                Dim vnum As String = ""
                Dim i As Byte
                For i = 1 To vcodenum
                    Randomize()
                    
    'vnum = vnum & vcarray(Int(35 * Rnd())) '数组一般从0开始读取,所以这里为35*rnd
                    vnum = vnum & vcarray(Int(29 * Rnd())) '数组一般从0开始读取,所以这里为35*rnd
                Next
                Return vnum
            End Function
  • 相关阅读:
    职场利器:说服力书籍排行榜
    经商必读的6本书推荐
    有关企业文化的书籍推荐
    创业书籍推荐
    企业文化建设的基本内容和主要步骤
    沟通书籍排行榜推荐
    企业文化建设案例与方案分享
    如何提高个人领导力?
    Project Recording: Date and Factory Date[转载]
    SAP Control framework–实例
  • 原文地址:https://www.cnblogs.com/services/p/1712404.html
Copyright © 2020-2023  润新知