在ASP.NET中生成随机验证码方法很简单,首先新建一个.aspx文件,进入Html视图,将所有Html标记删掉,只留下最上面的一行Page指令,如新建一个名为code.aspx的文件,后台代码如下:
1using System;
2using System.Collections;
3using System.ComponentModel;
4using System.Data;
5using System.Drawing;
6using System.Web;
7using System.Web.SessionState;
8using System.Web.UI;
9using System.Web.UI.WebControls;
10using System.Web.UI.HtmlControls;
11
12namespace Code
13{
14 /// <summary>
15 /// 此页面只用于生成4位验证码。
16 /// </summary>
17 public class Code : System.Web.UI.Page
18 {
19
20 private void Page_Load(object sender, System.EventArgs e)
21 {
22 // 在此处放置用户代码以初始化页面
23 if(!Page.IsPostBack)
24 {
25 this.GenImg(this.GenCode(4));
26 }
27 }
28
29 //产生随机字符串
30 private string GenCode(int num)
31 {
32 string[] source={"0","1","2","3","4","5","6","7","8","9",
33 "A","B","C","D","E","F","G","H","I","J","K","L","M","N",
34 "O","P","Q","R","S","T","U","V","W","X","Y","Z"};
35 string code="";
36 Random rd=new Random();
37 for(int i=0;i < num;i++)
38 {
39 code += source[rd.Next(0,source.Length)];
40 }
41 return code;
42 }
43
44 //生成图片
45 private void GenImg(string code)
46 {
47 Bitmap myPalette=new Bitmap(60,20);//定义一个画板
48
49 Graphics gh=Graphics.FromImage(myPalette);//在画板上定义绘图的实例
50
51 Rectangle rc=new Rectangle(0,0,60,20);//定义一个矩形
52
53 gh.FillRectangle(new SolidBrush(Color.Silver),rc);//填充矩形
54 gh.DrawString(code,new Font("宋体",16),new SolidBrush(Color.Gray),rc);//在矩形内画出字符串
55
56 myPalette.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);//将图片显示出来
57
58 Session["ValidateCode"]=code;//将字符串保存到Session中,以便需要时进行验证
59
60 gh.Dispose();
61 myPalette.Dispose();
62 }
63 Web 窗体设计器生成的代码
83 }
84}
85
然后在要使用验证码的地方添加一个image标记,将图片路径指到code.aspx即可。2using System.Collections;
3using System.ComponentModel;
4using System.Data;
5using System.Drawing;
6using System.Web;
7using System.Web.SessionState;
8using System.Web.UI;
9using System.Web.UI.WebControls;
10using System.Web.UI.HtmlControls;
11
12namespace Code
13{
14 /// <summary>
15 /// 此页面只用于生成4位验证码。
16 /// </summary>
17 public class Code : System.Web.UI.Page
18 {
19
20 private void Page_Load(object sender, System.EventArgs e)
21 {
22 // 在此处放置用户代码以初始化页面
23 if(!Page.IsPostBack)
24 {
25 this.GenImg(this.GenCode(4));
26 }
27 }
28
29 //产生随机字符串
30 private string GenCode(int num)
31 {
32 string[] source={"0","1","2","3","4","5","6","7","8","9",
33 "A","B","C","D","E","F","G","H","I","J","K","L","M","N",
34 "O","P","Q","R","S","T","U","V","W","X","Y","Z"};
35 string code="";
36 Random rd=new Random();
37 for(int i=0;i < num;i++)
38 {
39 code += source[rd.Next(0,source.Length)];
40 }
41 return code;
42 }
43
44 //生成图片
45 private void GenImg(string code)
46 {
47 Bitmap myPalette=new Bitmap(60,20);//定义一个画板
48
49 Graphics gh=Graphics.FromImage(myPalette);//在画板上定义绘图的实例
50
51 Rectangle rc=new Rectangle(0,0,60,20);//定义一个矩形
52
53 gh.FillRectangle(new SolidBrush(Color.Silver),rc);//填充矩形
54 gh.DrawString(code,new Font("宋体",16),new SolidBrush(Color.Gray),rc);//在矩形内画出字符串
55
56 myPalette.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);//将图片显示出来
57
58 Session["ValidateCode"]=code;//将字符串保存到Session中,以便需要时进行验证
59
60 gh.Dispose();
61 myPalette.Dispose();
62 }
63 Web 窗体设计器生成的代码
83 }
84}
85