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程序设计有所帮助。