在ASP.NET中生成随机验证码方法很简单,首先新建一个.aspx文件,进入Html视图,将所有Html标记删掉,只留下最上面的一行Page指令,如新建一个名为code.aspx的文件,后台代码如下:
1
using System;
2
using System.Collections;
3
using System.ComponentModel;
4
using System.Data;
5
using System.Drawing;
6
using System.Web;
7
using System.Web.SessionState;
8
using System.Web.UI;
9
using System.Web.UI.WebControls;
10
using System.Web.UI.HtmlControls;
11
12
namespace 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即可。
using System;2
using System.Collections;3
using System.ComponentModel;4
using System.Data;5
using System.Drawing;6
using System.Web;7
using System.Web.SessionState;8
using System.Web.UI;9
using System.Web.UI.WebControls;10
using System.Web.UI.HtmlControls;11

12
namespace Code13
{14
/// <summary>15
/// 此页面只用于生成4位验证码。16
/// </summary>17
public class Code : System.Web.UI.Page18
{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



浙公网安备 33010602011771号