手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >ASP.net 验证码实现代码(C#)
ASP.net 验证码实现代码(C#)
摘要:publicclassValidateCode:System.Web.UI.Page{privatevoidPage_Load(object...

publicclassValidateCode:System.Web.UI.Page

{

privatevoidPage_Load(objectsender,System.EventArgse)

{

this.CreateCheckCodeImage(GenerateCheckCode());

}

#regionWeb窗体设计器生成的代码

overrideprotectedvoidOnInit(EventArgse)

{

//

//CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。

//

InitializeComponent();

base.OnInit(e);

}

///<summary>

///设计器支持所需的方法-不要使用代码编辑器修改

///此方法的内容。

///</summary>

privatevoidInitializeComponent()

{

this.Load+=newSystem.EventHandler(this.Page_Load);

}

#endregion

privatestringGenerateCheckCode()

{

intnumber;

charcode;

stringcheckCode=String.Empty;

System.Randomrandom=newRandom();

for(inti=0;i<5;i++)

{

number=random.Next();

if(number%2==0)

code=(char)('0'+(char)(number%10));

else

code=(char)('A'+(char)(number%26));

checkCode+=code.ToString();

}

Response.Cookies.Add(newHttpCookie("CheckCode",checkCode));

returncheckCode;

}

privatevoidCreateCheckCodeImage(stringcheckCode)

{

if(checkCode==null||checkCode.Trim()==String.Empty)

return;

System.Drawing.Bitmapimage=newSystem.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length*12.5)),22);

Graphicsg=Graphics.FromImage(image);

try

{

//生成随机生成器

Randomrandom=newRandom();

//清空图片背景色

g.Clear(Color.White);

//画图片的背景噪音线

for(inti=0;i<25;i++)

{

intx1=random.Next(image.Width);

intx2=random.Next(image.Width);

inty1=random.Next(image.Height);

inty2=random.Next(image.Height);

g.DrawLine(newPen(Color.Silver),x1,y1,x2,y2);

}

Fontfont=newSystem.Drawing.Font("Arial",12,(System.Drawing.FontStyle.Bold|System.Drawing.FontStyle.Italic));

System.Drawing.Drawing2D.LinearGradientBrushbrush=newSystem.Drawing.Drawing2D.LinearGradientBrush(newRectangle(0,0,image.Width,image.Height),Color.Blue,Color.DarkRed,1.2f,true);

g.DrawString(checkCode,font,brush,2,2);

//画图片的前景噪音点

for(inti=0;i<100;i++)

{

intx=random.Next(image.Width);

inty=random.Next(image.Height);

image.SetPixel(x,y,Color.FromArgb(random.Next()));

}

//画图片的边框线

g.DrawRectangle(newPen(Color.Silver),0,0,image.Width-1,image.Height-1);

System.IO.MemoryStreamms=newSystem.IO.MemoryStream();

image.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);

Response.ClearContent();

Response.C;

Response.BinaryWrite(ms.ToArray());

}

finally

{

g.Dispose();

image.Dispose();

}

}

}

假如以上验证码生成器页面名为:CheckCode.aspx,那么在登录页面中使用“<IMG>”这个HTML元素来显示生成的验证码图片:<IMGsrc="CheckCode.aspx">

在登录页面的登录按钮的处理事件中使用以下代码判断验证码:

privatevoidbtnLogin_Click(objectsender,System.Web.UI.ImageClickEventArgse)

{

if(Request.Cookies["CheckCode"]==null)

{

lblMessage.Text="您的浏览器设置已被禁用Cookies,您必须设置浏览器允许使用Cookies选项后才能使用本系统。";

lblMessage.Visible=true;

return;

}

if(String.Compare(Request.Cookies["CheckCode"].Value,txtCheckCode.Text,true)!=0)

{

lblMessage.Text="验证码错误,请输入正确的验证码。";

lblMessage.Visible=true;

return;

}

}

【ASP.net 验证码实现代码(C#)】相关文章:

ASP.NET 高性能分页代码

asp.net下中文验证码,免费开源代码

Asp.net禁用页面缓存的方法总结

ASP.NET Ajax级联DropDownList实现代码

asp.net 操作excel的实现代码

c# .net 生成图片验证码的代码

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

asp.net DiscuzNT登录,退出的代码

ASP.net 生成缩略图的实例源代码

ASP.NET实用代码片段

精品推荐
分类导航