ASP.NET 2.0 HttpHandler實現(xiàn)生成圖片驗證碼
2007/1/11 22:08:56
(一).功能        用HttpHandler實現(xiàn)圖片驗證碼          (二).代碼如下    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 生成網(wǎng)站驗證碼功能
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        //設(shè)置輸出流圖片格式
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 - 1].ToString(), font, new SolidBrush(Color.Blue), i * 38, r.Next(0, 15));
45        }
46
47        //生成干擾線條
48        Pen pen = new Pen(new SolidBrush(Color.Blue), 2);
49        for (int i = 0; i < 10; i++)
50        {
51            g.DrawLine(pen, new Point(r.Next(0, 199), r.Next(0, 59)), new Point(r.Next(0, 199), r.Next(0, 59)));
52        }
53        b.Save(hc.Response.OutputStream, ImageFormat.Gif);
54        hc.Session[strIdentify] = s.ToString(); //先保存在Session中,驗證與用戶輸入是否一致
55        hc.Response.End();
56   
57    }
58   
59    /// <summary>
60    /// 表示此類實例是否可以被多個請求共用(重用可以提高性能)
61    /// </summary>
62    public bool IsReusable
63    {
64        get
65        {
66            return true;
67        }
68    }
69 }
70 
2. 前臺頁面代碼    1 <asp:Login ID="Login1" runat="server" BackColor="#EFF3FB" BorderColor="#B5C7DE" BorderPadding="4" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em" ForeColor="#333333" OnAuthenticate="Login1_Authenticate">
2            <TitleTextStyle BackColor="#507CD1" Font-Bold="True" Font-Size="0.9em" ForeColor="White" />
3            <InstructionTextStyle Font-Italic="True" Fo

下一頁
返回列表
返回首頁 主站蜘蛛池模板: 欧美黄色一级视频| 麻豆aⅴ精品无码一区二区| 少妇被躁爽到高潮无码文| 国产三级日产三级韩国三级韩级| 800av我要打飞机| 日韩国产成人精品视频人| 亚洲欧美在线不卡| 精品久久综合1区2区3区激情| 国产伦精品一区二区三区在线观看 | 黑人巨鞭大战欧美肥妇| 成人无码免费一区二区三区 | 亚洲精品无码不卡在线播放| 精品无码中出一区二区| 国产精品午夜电影| JAPANRCEP老熟妇乱子伦视频| 性欧美高清come| 久久久久99精品成人片试看| 日韩在线视频二区| 亚洲一区二区无码偷拍| 欧美视频一区在线观看| 亚洲黄在线观看| 精品一区二区三区无码免费直播| 国产欧美日韩精品第一区| 88av在线播放| 在线观看亚洲av每日更新| 国产V亚洲V天堂无码久久久| chinese激烈高潮HD| 欧美老人巨大xxxx做受视频 | 青梅竹马嗯哦ch| 国产精品成人va在线观看| ipx-412天海翼在线播放 | 成人窝窝午夜看片| 久久免费的精品国产V∧| 最新免费jlzzjlzz在线播放| 国产乱人伦app精品久久| 亚洲国产激情在线一区| 国产精品麻豆入口| 99视频有精品| 女人18特级一级毛片免费视频| 两根硕大的挤进了小雪| 无码一区二区三区免费|