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

ASP.NET实现验证码

程序员文章站 2022-05-26 23:17:17
这里首先说一下原理 在一个登录界面中,放一个image在界面上,然后添加一个新项,起名为validatecode.x页面 添加一个新的页面,在新建的页面中写入如下代码: &n...

这里首先说一下原理

在一个登录界面中,放一个image在界面上,然后添加一个新项,起名为validatecode.x页面

添加一个新的页面,在新建的页面中写入如下代码:

 

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;//保存验证码 
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);//绘制验证码图像 
} 


 

然后在page_load(object sender, eventargs e) 中写入:

 

 

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);//保存图像,等待输出 
} 


 

 

最后运行代码,出现如下样式:

ASP.NET实现验证码