详解ASP.NET验证码的生成方法

一般验证码的生成方法都是相同的,主要的步骤都有两步

第一步:随机出一系统验证码的数字或字母,顺便把随机生成的数字或字母写入Cookies 或者 Session。

第二步:用第一步随机出来的数字或字母来合成图片。

可以看出来验证码的复杂度主要是第二步来完成,你可以根据自己所要的复杂度来设定。

我们一起来看看:

 第一步:随机生成数字或字母的方法

  1. ///   /// 生成验证码的随机数  ///   /// 返回五位随机数  private string GenerateCheckCode()  {    int number;    char code;    string checkCode = String.Empty;     Random random = new Random();     for (int i = 0; i 

    第二步:生成图片

    ///   /// 生成验证码图片  ///   ///   private void CreateCheckCodeImage(string checkCode)  {    if (checkCode == null || checkCode.Trim() == String.Empty)      return;     Bitmap image = new Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);    Graphics g = Graphics.FromImage(image);     try    {      //生成随机生成器      Random random = new Random();       //清空图片背景色      g.Clear(Color.White);       //画图片的背景噪音线      for (int i = 0; i 

    *完整程序

    先在VS2005里面的项目里面添加一个 checkCode.aspx 文件,在checkCode.aspx.cs 代码文件中添加如下完整代码

    using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Drawing;using System.IO;using System.Drawing.Drawing2D; public partial class checkCode : System.Web.UI.Page{  protected void Page_Load(object sender, EventArgs e)  {    CreateCheckCodeImage(GenerateCheckCode());//调用下面两个方法;  }   ///   /// 生成验证码的随机数  ///   /// 返回五位随机数  private string GenerateCheckCode()  {    int number;    char code;    string checkCode = String.Empty;     Random random = new Random();     for (int i = 0; i   /// 生成验证码图片  ///   ///   private void CreateCheckCodeImage(string checkCode)  {    if (checkCode == null || checkCode.Trim() == String.Empty)      return;     Bitmap image = new Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);    Graphics g = Graphics.FromImage(image);     try    {      //生成随机生成器      Random random = new Random();       //清空图片背景色      g.Clear(Color.White);       //画图片的背景噪音线      for (int i = 0; i 

    上面生成验证码的页面都做好了,我们来调用看看:

    在你需要用到验证码的地方加了Image控件


    这样验证码就会显示到Image控件上面了!

    显示弄好了,当然我们要判断一下用户的输入是否正确!

    只要我们取得用户输入的值跟Cookis或者Session对比就OK

    Cookies的值 Request.Cookies["CheckCode"].Value

    Session的值 Session["CheckCode"].ToString()    (最好先判断Session是否空)

    如果不要区分大小写的话,就把用户输入的值和CookiesSession的值都转成大写或都小写 

    附用法 

    protected void Button1_Click(object sender, EventArgs e)  {    if (Request.Cookies["CheckCode"].Value == TextBox1.Text.Trim().ToString())    {      Response.Write("Cookies is right");    }    else    {      Response.Write("Cookies is wrong");    }     if (Session["CheckCode"] != null)    {      if (Session["CheckCode"].ToString().ToUpper() == TextBox1.Text.Trim().ToString().ToUpper())        //这样写可以不能区分大小写      {        Response.Write("Session is right");       }      else      {        Response.Write("Session is wrong");      }    }  }
  2. 登录后复制

  3. 以上就是本文的全部内容,教大家如何制作ASP.NET验证码,希望大家喜欢。

  4. 更多详解ASP.NET验证码的生成方法相关文章请关注PHP中文网!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
编程技术

.net验证码生成及使用方法

2025-3-6 6:33:53

编程技术

asp.net生成验证码(纯数字)

2025-3-6 6:34:05

0 条回复 A文章作者 M管理员
欢迎您,新朋友,感谢参与互动!
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
私信列表
搜索