当前位置: 移动技术网 > IT编程>开发语言>.net > Asp.net(C#)实现验证码功能代码

Asp.net(C#)实现验证码功能代码

2018年04月20日  | 移动技术网IT编程  | 我要评论

江西抓到巨型食人鱼 恐怖至之极,妖色成人网,恒大皇马足球学校

新建一个专门用来创建验证码图片的页面validatecode.aspx
它的后台cs文件代码如下:
pageload
复制代码 代码如下:

private void page_load(object sender, system.eventargs e)
{
string checkcode = createrandomcode(4);
session["checkcode"] = checkcode;
createimage(checkcode);
}

其中createrandomcode是自定义的函数,参数代表验证码位数
复制代码 代码如下:

private string createrandomcode(int codecount)
{
string allchar = "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,w,x,y,z";
string[] allchararray = allchar.split(',');
string randomcode = "";
int temp = -1; random rand = new random();
for (int i = 0; i < codecount; i++)
{
if (temp != -1)
{
rand = new random(i * temp * ((int)datetime.now.ticks));
}
int t = rand.next(35);
if (temp == t)
{
return createrandomcode(codecount);
}
temp = t;
randomcode += allchararray[t];
}
return randomcode;
}

createimage也是一个自定义的函数,用于生成图
复制代码 代码如下:

private void createimage(string checkcode)
{
int iwidth = (int)(checkcode.length * 11.5);
system.drawing.bitmap image = new system.drawing.bitmap(iwidth, 20);
graphics g = graphics.fromimage(image);
font f = new system.drawing.font("arial", 10, system.drawing.fontstyle.bold);
brush b = new system.drawing.solidbrush(color.white);
//g.fillrectangle(new system.drawing.solidbrush(color.blue),0,0,image.width, image.height);
g.clear(color.blue);
g.drawstring(checkcode, f, b, 3, 3);
pen blackpen = new pen(color.black, 0);
random rand = new random();
for (int i=0;i<5;i++)
{
int y = rand.next(image.height);
g.drawline(blackpen,0,y,image.width,y);
}
system.io.memorystream ms = new system.io.memorystream();
image.save(ms,system.drawing.imaging.imageformat.jpeg);
response.clearcontent();
response.contenttype = "image/jpeg";
response.binarywrite(ms.toarray());
g.dispose();
image.dispose();
}
//g.fillrectangle(new system.drawing.solidbrush(color.blue),0,0,image.width, image.height);
g.clear(color.blue);
这两种方法都可以改变生成图片的背景颜色。下面那个for循环用来生成一些随机的水平线
在需要用到验证码的页面添加一个<asp:image>控件即可,但是要把imageurl指向生成验证码的页面
复制代码 代码如下:

<asp:image runat="server" id="imagecheck" imageurl="validatecode.aspx"></asp:image>

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网