黑马程序员技术交流社区

标题: 验证码的实现 [打印本页]

作者: ♂张耕明    时间: 2012-11-10 21:58
标题: 验证码的实现
本帖最后由 ♂张耕明 于 2012-11-10 22:00 编辑
  1. public class Handler : IHttpHandler, IRequiresSessionState//如果要在一般处理程序中使用Session,必须实现 IRequiresSessionState接口。
  2.     {   
  3.         public void ProcessRequest(HttpContext context)
  4.         {
  5.             context.Response.ContentType = "image/JPEG";//指出响应内容的类型。
  6.             using (Bitmap bitmap = new Bitmap(100, 50))//初始化一张位图,使用Graphics在这张位图上进行绘制。
  7.             {   
  8.                 using (Graphics g = Graphics.FromImage(bitmap))
  9.                 {
  10.                     Random random = new Random();
  11.                     int code = random.Next(0, 101);//生成一个0~100的随机数。
  12.                     HttpContext.Current.Session["code"] = code.ToString();//为当前HTTP请求设置Session。
  13.                     g.DrawString(code.ToString(), new Font("微软雅黑", 29), Brushes.Red, new PointF(0, 0));
  14.                     bitmap.Save(context.Response.OutputStream, ImageFormat.Jpeg);//将此图像以指定的格式保存到指定的流中。
  15.                 }
  16.             }
  17.         }
  18.   }
  19. <form id="form1" runat="server">//当图片加载的时候,会在当前页面设置Session。
  20.   <!-- 点击图片的时候,图片的src属性的值在不变的情况下浏览器不会重新发出请求。-->
  21.   <div><img src="Handler.ashx" alt="验证码" title="验证码" onclick="this.src='Handler.ashx?'+new Date()"/></div>
  22.     <asp:TextBox ID="TextBox" runat="server"></asp:TextBox>
  23.   <asp:Button ID="Button" runat="server" onclick="Button_Click" Text="Button" />
  24.          protected void Button_Click(object sender, EventArgs e)//每点一次服务器控件中的Button都会对页面进行一次重绘。
  25.         {   
  26.             string 正确的验证码 = Session["code"].ToString();
  27.             if (正确的验证码 == TextBox.Text)//判断填入的数值是否和存入的Session值相同。
  28.             {
  29.                 Response.Write("正确!");
  30.             }
  31.             else
  32.             {
  33.                 Response.Write("错误!");
  34.             }
  35.         }
复制代码

作者: 许庭洲    时间: 2012-11-10 22:02
值得学习ing!
作者: 许坤    时间: 2012-11-10 22:57
好教程!!
作者: suiyuan_lin    时间: 2013-9-23 22:45
好东西,赞一个




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2