验证码代码:c#写的一个验证码代码来源: 发布时间:星期四, 2009年2月12日 浏览:696次 评论:0
前面发表过个验证码但感觉不好今天在发表个带噪点看起来更专业点 前台CheckCode.aspx <%@Pagelanguage=\"c#\"Inherits=\"Guestbook.CheckCode\"CodeFile=\"CheckCode.aspx.cs\"%> <!DOCTYPEHTMLPUBLIC\"-//W3C//DTDHTML4.0Transitional//EN\"> <HTML> <HEAD> <title>CheckCode</title> <metaname=\"GENERATOR\"Content=\"MicrosoftVisualStudio.NET7.1\"> <metaname=\"CODE_LANGUAGE\"Content=\"C#\"> <metaname=\"vs_defaultClientScript\"content=\"JavaScript\"> <metaname=\"vs_targetSchema\"content=\"http://schemas.microsoft.com/ellisense/ie5\"> </HEAD> <body> <formid=\"Form1\"method=\"post\"runat=\"server\"> <FONTface=\"宋体\"></FONT> </form> </body> </HTML> 后台CheckCode.aspx.cs using; using.Collections; using.ComponentModel; using.Data; using.Drawing; using.Web; using.Web.SessionState; using.Web.UI; using.Web.UI.WebControls; using.Web.UI.HtmlControls; Guestbook ...{ /**////<summary> ///页面检查生成Session[\"CheckCode\"] ///</summary> publicpartialCheckCode:.Web.UI.Page ...{ protectedvoidPage_Load(objectsender,.EventArgse) ...{ this.CreateCheckCodeImage(GenerateCheckCode); } privateGenerateCheckCode [Page] ...{ number; charcode; checkCode=String.Empty; .Randomrandom=Random; for(i=0;i<5;i) ...{ number=random.Next; (number%20) code=(char)(’0’+(char)(number%10)); code=(char)(’A’+(char)(number%26)); checkCodecode.; } //Response.Cookies.Add(HttpCookie(\"CheckCode\",checkCode)); Session[\"CheckCode\"]=checkCode; checkCode; } privatevoidCreateCheckCodeImage(checkCode) ...{ (checkCodenull||checkCode.TrimString.Empty) ; .Drawing.Bitmapimage=.Drawing.Bitmap(()Math.Ceiling((checkCode.Length*12.5)),22); [Page] Graphicsg=Graphics.FromImage(image); try ...{ //生成随机生成器 Randomrandom=Random; //清空图片背景色 g.Clear(Color.White); //画图片背景噪音线 for(i=0;i<25;i) ...{ x1=random.Next(image.Width); x2=random.Next(image.Width); y1=random.Next(image.Height); y2=random.Next(image.Height); g.DrawLine(Pen(Color.Silver),x1,y1,x2,y2); } Fontfont=.Drawing.Font(\"Arial\",12,(.Drawing.FontStyle.Bold|.Drawing.FontStyle.Italic)); .Drawing.Drawing2D.LinearGradientBrushbrush=.Drawing.Drawing2D.LinearGradientBrush(Rectangle(0,0,image.Width,image.Height),Color.Blue,Color.DarkRed,1.2f,true); [Page] g.DrawString(checkCode,font,brush,2,2); //画图片前景噪音点 for(i=0;i<100;i) ...{ x=random.Next(image.Width); y=random.Next(image.Height); image.SetPixel(x,y,Color.FromArgb(random.Next)); } //画图片边框线 g.DrawRectangle(Pen(Color.Silver),0,0,image.Width-1,image.Height-1); .IO.MemoryStreamms=.IO.MemoryStream; image.Save(ms,.Drawing.Imaging.ImageFormat.G); Response.ClearContent; Response.ContentType=\"image/G\"; Response.BinaryWrite(ms.ToArray); } finally ...{ g.Dispose; [Page] image.Dispose; } } } } ----------------------------------- 页面Default.aspx <tr> <tdalign=\"center\"height=\"30\">验证码</td> <tdstyle=\"height:30px\"><inputname=\"Txt_imgCode\"type=\"text\"id=\"Txt_imgCode\"size=\"5\"maxlength=\"5\"tabindex=\"3\"/> <imgid=\"CodeImg\"onclick=\"this.src=’CheckCode.aspx’\"src=\"CheckCode.aspx\"/> <inputonclick=\"document.getElementById(’CodeImg’).src=’CheckCode.aspx?tmp=’+Math.random\" type=\"button\"value=\"验证码\"name=\"Btn_Re\"/></td> </tr> 的后在后台对Session[\"CheckCode\"]..ToLower进行验证就行了来判断验证码是否正确 希望对大家有帮助 6
相关文章读者评论发表评论 |
|