ASP.NET 2.0 HttpHandler实现生成图片验证码(示例代码下载)

 
学习整理了一下
(一).功能
 
      用HttpHandler实现图片验证码
     
 
(二).代码如下
 
 1. 处理程序文件 ValidateImageHandler.ashx代码如下
 
 1  <% @ WebHandler Language = " C# "  Class = " ValidateImageHandler "   %>
 2 
 3  using  System;
 4  using  System.Web;
 5  using  System.Web.SessionState;
 6  using  System.Drawing;
 7  using  System.Drawing.Imaging;
 8  using  System.Text;
 9 
10  ///   <summary>
11  ///  ValidateImageHandler 生成网站验证码功能
12  ///   </summary>
13  public   class  ValidateImageHandler : IHttpHandler, IRequiresSessionState
14  {
15       int  intLength  =   5 ;                // 长度
16       string  strIdentify  =   " Identify " // 随机字串存储键值,以便存储到Session中
17       public  ValidateImageHandler()
18      {        
19      }
20 
21       ///   <summary>
22       ///   生成验证图片核心代码
23       ///   </summary>
24       ///   <param name="hc"></param>
25       public   void  ProcessRequest(HttpContext hc)
26      {
27           // 设置输出流图片格式
28          hc.Response.ContentType  =   " image/gif " ;
29          
30          Bitmap b  =   new  Bitmap( 200 60 );
31          Graphics g  =  Graphics.FromImage(b);
32          g.FillRectangle( new  SolidBrush(Color.YellowGreen),  0 0 200 60 );
33          Font font  =   new  Font(FontFamily.GenericSerif,  48 , FontStyle.Bold, GraphicsUnit.Pixel);
34          Random r  =   new  Random();
35 
36           // 合法随机显示字符列表
37           string  strLetters  =   " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 " ;
38          StringBuilder s  =   new  StringBuilder();
39          
40           // 将随机生成的字符串绘制到图片上
41           for  ( int  i  =   0 ; i  <  intLength; i ++ )
42          {
43              s.Append(strLetters.Substring(r.Next( 0 , strLetters.Length  -   1 ),  1 ));
44              g.DrawString(s[s.Length  -  
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值