欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

asp.net验证码的简单制作

程序员文章站 2024-02-16 13:38:22
实际上关于asp.net验证码制作的文章已经很多很多了,但是今天还是要和大家继续分享,亲,可以综合几篇实例,编写出适用于自己网站的asp.net验证码,大概也就两大部分:...

实际上关于asp.net验证码制作的文章已经很多很多了,但是今天还是要和大家继续分享,亲,可以综合几篇实例,编写出适用于自己网站的asp.net验证码,大概也就两大部分:

先建立一个asp.net窗体validatecode.aspx;不写任何东西。直接在后台validatecode.aspx.cs中写如下代码:

    protected void page_load(object sender, eventargs e)
    {      
      string validatecode = createvalidatecode();//生成验证码 
      bitmap bitmap = new bitmap(imgwidth,imgheight);//生成bitmap图像 
      disturbbitmap(bitmap); //图像背景 
      drewvalidatecode(bitmap,validatecode);//绘制验证码图像 
      bitmap.save(response.outputstream,imageformat.gif);//保存图像,等待输出 

    }

    private int codelen = 4;//验证码长度 
    private int fineness = 85;//图片清晰度 
    private int imgwidth = 48;//图片宽度 
    private int imgheight = 24;//图片高度 
    private string fontfamily = "times new roman";//字体名称 
    private int fontsize = 14;//字体大小 
    //private int fontstyle = 0;//字体样式 
    private int posx = 0;//绘制起始坐标x 
    private int posy = 0;//绘制坐标y 
    private string createvalidatecode() //生成验证码 
    {
      string validatecode = "";
      random random = new random();// 随机数对象 
      for (int i = 0; i < codelen; i++)//循环生成每位数值 
      {
        int n = random.next(10);//数字 
        validatecode += n.tostring();
      }
      session["vcode"] = validatecode;//保存验证码 这session是在前台调用的。
      return validatecode;// 返回验证码 
    }

    private void disturbbitmap(bitmap bitmap)//图像背景 
    {
      random random = new random();//通过随机数生成 
      for (int i = 0; i < bitmap.width; i++)//通过循环嵌套,逐个像素点生成 
      {
        for (int j = 0; j < bitmap.height; j++)
        {
          if (random.next(90) <= this.fineness)
            bitmap.setpixel(i, j, color.lightgray);
        }
      }
    }
    private void drewvalidatecode(bitmap bitmap, string validatecode)//绘制验证码图像 
    {
      graphics g = graphics.fromimage(bitmap);//获取绘制器对象 
      font font = new font(fontfamily, fontsize, fontstyle.bold);//设置绘制字体 
      g.drawstring(validatecode, font, brushes.black, posx, posy);//绘制验证码图像 
    } 

在login.aspx窗体页面中实现如下图功能:

asp.net验证码的简单制作

login.aspx窗体前台:

//这个函数是在点击验证码图片就会更换验证码
//可以使用微软自带的jqury.js 下面jquery-1.4.1.min.js版本之上的。或者在jquery官网上下载就可以。
 <script src="styles/jquery-1.4.1.min.js" type="text/javascript"></script>
     function f_refreshtype() {
       var image1 = document.getelementbyidx_x_x_x("img");
       if (image1 != null) {
         image1.src = image1.src + "?";
       }
     }
---<img src="validatecode.aspx" id="img" onclick="f_refreshtype()" width="50px"/>//调用函数,实现更换验证码

后台代码:点击登录验证用户是否输入正确。 

  string usercode = txtcode.text.trim();
      if (usercode == session["vcode"].tostring())//session["vcode"]
      {
  }

其他代码就是跟其他一样。

以上就是跟大家分享的关于生成asp.net验证码的过程,希望大家可以学以致用。