Dim rd As New Random
        Dim RdNum As Integer = rd.Next(1000, 9999)
        Session("chkCode") = RdNum
        Dim newbitmap As New Bitmap(36, 16, Imaging.PixelFormat.Format32bppArgb)
        Dim g As Graphics = Graphics.FromImage(newbitmap)
        Dim rectangle As New RectangleF(0, 0, 36, 16)
        g.FillRectangle(New SolidBrush(Color.BurlyWood), rectangle)
        Dim txtfont As New Font("宋体", 10)
        g.DrawString(RdNum.ToString, txtfont, New SolidBrush(Color.Blue), rectangle)
        newbitmap.Save(Server.MapPath("") & "\test.gif")
这个是我的代码
生成一个四位的随机数 通过图片控件显示随机数
怎样用代码实现验证码的判断过程???

解决方案 »

  1.   

     
            Random rd = new Random(); //创建随机数对象              //以下4行,产生由6个字母和数字组成的一个字符串 
            string str = "ABCDEFGHIJKLMNOPQRSTURWXYZ0123456789"; 
            string my51aspx = ""; 
            for (int i = 0; i < 4; i++) 
            { 
                my51aspx = my51aspx + str.Substring(rd.Next(35), 1); 
            } 
            //验证码值存放到Session中用来比较 
            Session["ValidateReg"] = my51aspx;         //以下三句,通过随机找一个现有图象产生一个画布Bitmap 
            string bgFilePath = Server.MapPath("images/0" + new Random().Next(5) + ".jpg");//随机找个图象 
            System.Drawing.Image imgObj = System.Drawing.Image.FromFile(bgFilePath); 
            Bitmap newBitmap = new Bitmap(imgObj, 80, 18);//建立位图对象         Graphics g = Graphics.FromImage(newBitmap);//根据上面创建的位图对象创建绘图面 
            SolidBrush brush = new SolidBrush(Color.Black);//设置画笔颜色         //定义一个含10种字体的数组 
            String[] fontFamily ={ "Arial", "Verdana", "Comic Sans MS", "Impact", "Haettenschweiler", "Lucida Sans Unicode", "Garamond", "Courier New", "Book Antiqua", "Arial Narrow" };         //通过循环,绘制每个字符, 
            for (int a = 0; a < my51aspx.Length; a++) 
            { 
                Font textFont = new Font(fontFamily[rd.Next(9)], 10, FontStyle.Bold);//字体随机,字号大小30,加粗 
                //每次循环绘制一个字符,设置字体格式,画笔颜色,字符相对画布的X坐标,字符相对画布的Y坐标 
                g.DrawString(my51aspx.Substring(a, 1), textFont, brush, a * 19, 0); 
            }         //保存画的图片到输出流中 
            newBitmap.Save(Response.OutputStream, ImageFormat.Gif); 
      

  2.   

    可以在页面上用javascript来读取存放了验证字符串的session或者cookies
      

  3.   

    把生成的随机数写入Session 验证时从Session里读取
      

  4.   

    首先,你的这样生成验证码的习惯很不好,
    因为生成的验证码太简单,任何干扰都没有,
    可以很轻易被识别。
    网上生成验证码的类有很多,随便搜一个用就比你现在的强。其次,生成验证码后,对session赋值 如 Session[“img”]="你的验证码";
    然后用户输入后,直接比较用户的输入是否和session相等就可以啦
      

  5.   

    取出Session中的值和提交的值比一下不就好了吗?
    或者把生成的验证码放入页面的隐藏域里面再读出来和输入的进行比(不安全,最好加解密)
      

  6.   

    Session("chkCode")取出来,和输入到TextBox里的值比较一下,就这么简单.
      

  7.   

    见用Session保存验证码的稍为多些,具体什么用,楼上都已经说了
      

  8.   

    可以用Compare进行判断
      if(String.Compare( Request.Cookies["CheckCode"].Valus,TextBox1.Text.ToUpper(),true!=0))
    {
        Response.Write("验证码错误!");
    }
      

  9.   

    lz已放入Session("chkCode")
    在登录时加上验证码输入框中的信息与此Session值的判断就可以了。
      

  10.   

    用cookies或 session保存起来,然后判断是否相=