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特级一级毛片免费视频|
两根硕大的挤进了小雪|
无码一区二区三区免费|