asp.net简单生成验证码的方法
本文实例讲述了asp.net简单生成验证码的方法。分享给大家供大家参考,具体如下:
1.新建一个一般处理程序
namespaceWebApplication1 { ///<summary> ///$codebehindclassname$的摘要说明 ///</summary> [WebService(Namespace="http://tempuri.org/")] [WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)] publicclassHandler1:IHttpHandler,IRequiresSessionState { publicvoidProcessRequest(HttpContextcontext) { context.Response.ContentType="image/gif"; //建立Bitmap对象,绘图 Bitmapbasemap=newBitmap(100,30); Graphicsgraph=Graphics.FromImage(basemap); graph.FillRectangle(newSolidBrush(Color.White),0,0,100,30); Fontfont=newFont(FontFamily.GenericSerif,24,FontStyle.Bold,GraphicsUnit.Pixel); Randomr=newRandom(); stringletters="ABCDEFGHIJKLMNPQRSTUVWXYZ"; stringletter; StringBuilders=newStringBuilder(); //添加随机的五个字母 for(intx=0;x<5;x++) { letter=letters.Substring(r.Next(0,letters.Length-1),1); s.Append(letter); graph.DrawString(letter,font,newSolidBrush(Color.Black),x*19,r.Next(0,8)); } //混淆背景 PenlinePen=newPen(newSolidBrush(Color.Black),2); for(intx=0;x<6;x++) graph.DrawLine(linePen,newPoint(r.Next(0,99),r.Next(0,29)),newPoint(r.Next(0,99),r.Next(0,29))); //将图片保存到输出流中 basemap.Save(context.Response.OutputStream,ImageFormat.Gif); context.Session["CheckCode"]=s.ToString();//如果没有实现IRequiresSessionState,则这里会出错,也无法生成图片 context.Response.End(); } publicboolIsReusable { get { returnfalse; } } } }
2.前台代码
<htmlxmlns="http://www.w3.org/1999/xhtml"> <headrunat="server"> <title></title> </head> <body> <formid="form1"runat="server"> <div> <asp:TextBoxID="txtCode"runat="server"></asp:TextBox> <imgid="imgCode"alt="看不清?点击换一张"src="Handler1.ashx"style="cursor:pointer"onclick="this.src=this.src+'?'"/><br/> <asp:ButtonID="Button1"runat="server"onclick="Button1_Click"Text="Button"/> </div> </form> </body> </html>
希望本文所述对大家asp.net程序设计有所帮助。