当前位置:编程学习 > C#/ASP.NET >>

大家帮我找找这段代码有什么问题啊,关于验证码的!

#Region "生成随机数"
    Public Function GenerateCheckCode() As String
        Dim Number As Integer
        Dim Code As Char
        Dim CheckCode As String = String.Empty
        Dim Random As System.Random = New Random()
        Dim i As Integer
        For i = 0 To 4
            Number = Random.Next()
            If Number Mod 2 = 0 Then
                    Code = CChar("0" + CChar(CStr(Number Mod 10)))
            Else
                    Code = CChar("A" + CChar(CStr(Number Mod 20)))
            End If
            CheckCode += Code.ToString
        Next
        HttpContext.Current.Response.Cookies.Add(New HttpCookie("CheckCode", CheckCode))
        Return CheckCode
    End Function
#End Region

    '<summary>
    '生成验证码图片
    '</summary>
#Region "生成验证码图片"
    Public Sub CreateCheckCodeImage()
        Dim CheckCode As String = GenerateCheckCode()
        If CheckCode = Nothing Or CheckCode.Trim = String.Empty Then
            Return
        End If
        Dim image As System.Drawing.Bitmap = New System.Drawing.Bitmap( _
        CInt(Math.Ceiling((CheckCode.Length * 12.5))), 22)
        Dim g As Graphics = Graphics.FromImage(image)

        Try
            '生成随机生成器
            Dim random As Random = New Random
            '清空图片背景色
            g.Clear(Color.White)
            '画图片的背景噪音线
            Dim i As Integer
            For i = 0 To 12
                Dim x1 As Integer = random.Next(image.Width)
                Dim x2 As Integer = random.Next(image.Width)
                Dim y1 As Integer = random.Next(image.Height)
                Dim y2 As Integer = random.Next(image.Height)
                g.DrawLine(New Pen(Color.Silver), x1, y1, x2, y2)
            Next
            Dim Font As Font = New System.Drawing.Font("arial", 12, (System.Drawing.FontStyle.Bold Or FontStyle.Italic))
            Dim brush As System.Drawing.Drawing2D.LinearGradientBrush = New System.Drawing.Drawing2D.LinearGradientBrush(New _
            Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2F, True)
            g.DrawString(CheckCode, Font, brush, 2, 2)
            '画图片的前景噪音点
            For i = 0 To 99
                Dim x As Integer = random.Next(image.Width)
                Dim y As Integer = random.Next(image.Height)
                image.SetPixel(x, y, Color.FromArgb(random.Next()))
            Next
            g.DrawRectangle(New Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1)
            Dim ms As System.IO.MemoryStream = New System.IO.MemoryStream()
            image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif)
            HttpContext.Current.Response.ClearContent()
            HttpContext.Current.Response.ContentType = "image/Gif"
            HttpContext.Current.Response.BinaryWrite(ms.ToArray())
        Finally
            g.Dispose()
            image.Dispose()
        End Try
    End Sub
#End Region

这是我写的一段代码,但只能两个数字的组合
只能出现0和A的组合,我一只菜菜鸟,请高手救救我啊!
--------------------编程问答-------------------- Dim Random As System.Random = New Random()-----------只生成0-----1的隨機數
                                     即0,0.1,0.2,0.4...........1這樣的數據
If Number Mod 2 = 0 Then     --------------你想一下這只能是什么情況﹗
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,