ASP.NET简单验证码

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: |||超大  

今天写了一个特别简单的验证码实现。现将代码贴出。

PRotectedvoidPage_Load(objectsender, EventArgs e)

{

CreateCheckCodeImage(RndNum());

}privatestringRndNum()

{intnumber;charcode;stringcheckCode =String.Empty;

System.Random random=newRandom();for(inti =0; i <4; i++)

{

number=random.Next();if(number %2==0)

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

checkCode+=code.ToString();

}

Response.Cookies.Add(newHttpCookie("yzmcode", checkCode));returncheckCode;

}privatevoidCreateCheckCodeImage(stringcheckCode)

{if(checkCode ==null|| checkCode.Trim() ==String.Empty)return;

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

Graphics g=Graphics.FromImage(image);try{//生成随机生成器Random random =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);

}

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

System.Drawing.Drawing2D.LinearGradientBrush brush=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.MemoryStream ms=newSystem.IO.MemoryStream();

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

Response.ClearContent();

Response.ContentType="image/Gif";

Response.BinaryWrite(ms.ToArray());

}finally{

g.Dispose();

image.Dispose();

}

}

引用页面代码如下:

<img id="imgCode"width="83"height="38"src="ValiDateImage.aspx?<%=DateTime.Now %>"style="cursor: pointer;"alt="点击刷新"onclick="Show(this);">

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航