生成验证码的页面:Captcha.aspx
调用验证码的页面:register.aspx
源码下载:下载
1
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Captcha.aspx.cs" Inherits="Captcha" %>
2![](/Images/OutliningIndicators/None.gif)
3
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4![](/Images/OutliningIndicators/None.gif)
5
<html xmlns="http://www.w3.org/1999/xhtml" >
6
<head runat="server">
7
<title>Untitled Page</title>
8
</head>
9
<body>
10
<form id="form1" runat="server">
11
<div>
12
13
</div>
14
</form>
15
</body>
16
</html>
17
===========================
18
Captcha.aspx.cs
19![](/Images/OutliningIndicators/None.gif)
20
using System;
21
using System.Data;
22
using System.Configuration;
23
using System.Collections;
24
using System.Web;
25
using System.Web.Security;
26
using System.Web.UI;
27
using System.Web.UI.WebControls;
28
using System.Web.UI.WebControls.WebParts;
29
using System.Web.UI.HtmlControls;
30
using System.Drawing.Drawing2D;
31
using System.Drawing;
32
using System.IO;
33
using System.Drawing.Imaging;
34![](/Images/OutliningIndicators/None.gif)
35
public partial class Captcha : System.Web.UI.Page
36
{
37
private Bitmap validateimage;
38
private Graphics g;
39
public void Page_Load(object Sender, EventArgs e)
40
{
41
Response.BufferOutput = true; //特别注意
42
Response.Cache.SetExpires(DateTime.Now.AddMilliseconds(-1));//特别注意
43
Response.Cache.SetCacheability(HttpCacheability.NoCache);//特别注意
44
Response.AppendHeader("Pragma", "No-Cache"); //特别注意
45
string VNum = MakeValidateCode();
46
Session["VNum"] = VNum.ToUpper();//取得验证码,以便后来验证 大写
47
ValidateCode(VNum.ToUpper());
48
}
49
public void ValidateCode(string VNum)
50
{
51
validateimage = new Bitmap(100, 20, PixelFormat.Format24bppRgb);
52
g = Graphics.FromImage(validateimage);
53
g.FillRectangle(new LinearGradientBrush(new Point(0, 0), new Point(110, 20), Color.FromArgb(240, 255, 255, 255), Color.FromArgb(240, 255, 255, 255)), 0, 0, 200, 200);
54
g.DrawString(VNum, new Font("arial", 12), new SolidBrush(Color.Red), new PointF(6, 0));
55
g.Save();
56
MemoryStream ms = new MemoryStream();
57
validateimage.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
58
Response.ClearContent();
59
Response.ContentType = "image/bmp";
60
Response.BinaryWrite(ms.ToArray());
61
Response.End();
62
}
63![](/Images/OutliningIndicators/InBlock.gif)
64
string MakeValidateCode()
65
{
//这里可以改成你想设置的验证码字符集
66
//char[] s = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };
67
char[] s = new char[] { '张', '王', '李', '赵', '钱', '孙', '1', '7', '8', '9'};
68
string num = "";
69
Random r = new Random();
70
for (int i = 0; i < 5; i++)
71
{
72
num += s[r.Next(0, s.Length)].ToString();
73
}
74
return num;
75
}
76![](/Images/OutliningIndicators/InBlock.gif)
77![](/Images/OutliningIndicators/InBlock.gif)
78
}
79![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/None.gif)
11
![](/Images/OutliningIndicators/None.gif)
12
![](/Images/OutliningIndicators/None.gif)
13
![](/Images/OutliningIndicators/None.gif)
14
![](/Images/OutliningIndicators/None.gif)
15
![](/Images/OutliningIndicators/None.gif)
16
![](/Images/OutliningIndicators/None.gif)
17
![](/Images/OutliningIndicators/None.gif)
18
![](/Images/OutliningIndicators/None.gif)
19
![](/Images/OutliningIndicators/None.gif)
20
![](/Images/OutliningIndicators/None.gif)
21
![](/Images/OutliningIndicators/None.gif)
22
![](/Images/OutliningIndicators/None.gif)
23
![](/Images/OutliningIndicators/None.gif)
24
![](/Images/OutliningIndicators/None.gif)
25
![](/Images/OutliningIndicators/None.gif)
26
![](/Images/OutliningIndicators/None.gif)
27
![](/Images/OutliningIndicators/None.gif)
28
![](/Images/OutliningIndicators/None.gif)
29
![](/Images/OutliningIndicators/None.gif)
30
![](/Images/OutliningIndicators/None.gif)
31
![](/Images/OutliningIndicators/None.gif)
32
![](/Images/OutliningIndicators/None.gif)
33
![](/Images/OutliningIndicators/None.gif)
34
![](/Images/OutliningIndicators/None.gif)
35
![](/Images/OutliningIndicators/None.gif)
36
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/InBlock.gif)
40
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
41
![](/Images/OutliningIndicators/InBlock.gif)
42
![](/Images/OutliningIndicators/InBlock.gif)
43
![](/Images/OutliningIndicators/InBlock.gif)
44
![](/Images/OutliningIndicators/InBlock.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/InBlock.gif)
47
![](/Images/OutliningIndicators/InBlock.gif)
48
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
49
![](/Images/OutliningIndicators/InBlock.gif)
50
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
51
![](/Images/OutliningIndicators/InBlock.gif)
52
![](/Images/OutliningIndicators/InBlock.gif)
53
![](/Images/OutliningIndicators/InBlock.gif)
54
![](/Images/OutliningIndicators/InBlock.gif)
55
![](/Images/OutliningIndicators/InBlock.gif)
56
![](/Images/OutliningIndicators/InBlock.gif)
57
![](/Images/OutliningIndicators/InBlock.gif)
58
![](/Images/OutliningIndicators/InBlock.gif)
59
![](/Images/OutliningIndicators/InBlock.gif)
60
![](/Images/OutliningIndicators/InBlock.gif)
61
![](/Images/OutliningIndicators/InBlock.gif)
62
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
63
![](/Images/OutliningIndicators/InBlock.gif)
64
![](/Images/OutliningIndicators/InBlock.gif)
65
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
//这里可以改成你想设置的验证码字符集
66
![](/Images/OutliningIndicators/InBlock.gif)
67
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
68
![](/Images/OutliningIndicators/InBlock.gif)
69
![](/Images/OutliningIndicators/InBlock.gif)
70
![](/Images/OutliningIndicators/InBlock.gif)
71
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
72
![](/Images/OutliningIndicators/InBlock.gif)
73
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
74
![](/Images/OutliningIndicators/InBlock.gif)
75
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
76
![](/Images/OutliningIndicators/InBlock.gif)
77
![](/Images/OutliningIndicators/InBlock.gif)
78
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
79
![](/Images/OutliningIndicators/None.gif)
调用验证码的页面:register.aspx
1
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="register.aspx.cs" Inherits="register" %>
2![](/Images/OutliningIndicators/None.gif)
3
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4![](/Images/OutliningIndicators/None.gif)
5
<html xmlns="http://www.w3.org/1999/xhtml" >
6
<head id="Head1" runat="server">
7
<title>会员注册</title>
8
</head>
9
<body>
10
<form id="form1" runat="server">
11
<div class="middle" style="height: 1px" >
12
<div >
13
<asp:Label ID="UserName" runat="server" Text="用户名:" ></asp:Label>
14
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
15
</div>
16
<div >
17
<asp:Label ID="UserPsw" runat="server" Text="密码:" ></asp:Label>
18
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox></div>
19
<div >
20
<asp:Label ID="Label2" runat="server" Text="确认密码:" ></asp:Label>
21
<asp:TextBox ID="TextBox6" runat="server"></asp:TextBox></div>
22
<div >
23
<asp:Label ID="Question" runat="server" Text="找回密码问题:"></asp:Label>
24
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox></div>
25
<div>
26
<asp:Label ID="Answer" runat="server" Text="找回密码答案:"></asp:Label>
27
<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox></div>
28
<div >
29
<asp:Label ID="Email" runat="server" Text="电子邮件:"></asp:Label>
30
<asp:TextBox ID="TextBox5" runat="server"></asp:TextBox></div>
31
<div >
32
<asp:Label ID="Label1" runat="server" Text="验证码:"></asp:Label>
33
<asp:TextBox ID="CheckCode" runat="server" Width="85px"></asp:TextBox>
34
<asp:Image id="Image1" runat="server" style="display:inline;" ImageUrl="Captcha.aspx"></asp:Image>
35
<asp:LinkButton ID="LinkButton1" runat="server">看不清楚,再换一张</asp:LinkButton></div>
36
<div>
37
<asp:Button ID="Button1" runat="server" Text="确定" OnClick="Button1_Click" /></div>
38
<div class="text">
39
<asp:Label ID="Message" runat="server" ></asp:Label></div>
40
</div>
41
</form>
42
</body>
43![](/Images/OutliningIndicators/None.gif)
44
</html>
45![](/Images/OutliningIndicators/None.gif)
46
=============================
47
Register.aspx.cs
48![](/Images/OutliningIndicators/None.gif)
49
using System;
50
using System.Data;
51
using System.Configuration;
52
using System.Collections;
53
using System.Web;
54
using System.Web.Security;
55
using System.Web.UI;
56
using System.Web.UI.WebControls;
57
using System.Web.UI.WebControls.WebParts;
58
using System.Web.UI.HtmlControls;
59![](/Images/OutliningIndicators/None.gif)
60![](/Images/OutliningIndicators/None.gif)
61
public partial class register : Page
62
{
63
protected void Page_Load(object sender, EventArgs e)
64
{
65![](/Images/OutliningIndicators/InBlock.gif)
66
}
67
protected void Button1_Click(object sender, EventArgs e)
68
{
69
string checkcode = CheckCode.Text;
70
//Response.Write(Session["VNum"]);
71
if (Session["VNum"].ToString() == null || checkcode.ToUpper() == Session["VNum"].ToString())//注意Session["VNum"].ToString(),必须加上ToString(),因//为Session["VNum"]是对象。
72
Response.Redirect("default.aspx");
73
else
74
Message.Text = "验证码错误或为空!";
75
}
76
}
77![](/Images/OutliningIndicators/None.gif)
78![](/Images/OutliningIndicators/None.gif)
79![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/None.gif)
11
![](/Images/OutliningIndicators/None.gif)
12
![](/Images/OutliningIndicators/None.gif)
13
![](/Images/OutliningIndicators/None.gif)
14
![](/Images/OutliningIndicators/None.gif)
15
![](/Images/OutliningIndicators/None.gif)
16
![](/Images/OutliningIndicators/None.gif)
17
![](/Images/OutliningIndicators/None.gif)
18
![](/Images/OutliningIndicators/None.gif)
19
![](/Images/OutliningIndicators/None.gif)
20
![](/Images/OutliningIndicators/None.gif)
21
![](/Images/OutliningIndicators/None.gif)
22
![](/Images/OutliningIndicators/None.gif)
23
![](/Images/OutliningIndicators/None.gif)
24
![](/Images/OutliningIndicators/None.gif)
25
![](/Images/OutliningIndicators/None.gif)
26
![](/Images/OutliningIndicators/None.gif)
27
![](/Images/OutliningIndicators/None.gif)
28
![](/Images/OutliningIndicators/None.gif)
29
![](/Images/OutliningIndicators/None.gif)
30
![](/Images/OutliningIndicators/None.gif)
31
![](/Images/OutliningIndicators/None.gif)
32
![](/Images/OutliningIndicators/None.gif)
33
![](/Images/OutliningIndicators/None.gif)
34
![](/Images/OutliningIndicators/None.gif)
35
![](/Images/OutliningIndicators/None.gif)
36
![](/Images/OutliningIndicators/None.gif)
37
![](/Images/OutliningIndicators/None.gif)
38
![](/Images/OutliningIndicators/None.gif)
39
![](/Images/OutliningIndicators/None.gif)
40
![](/Images/OutliningIndicators/None.gif)
41
![](/Images/OutliningIndicators/None.gif)
42
![](/Images/OutliningIndicators/None.gif)
43
![](/Images/OutliningIndicators/None.gif)
44
![](/Images/OutliningIndicators/None.gif)
45
![](/Images/OutliningIndicators/None.gif)
46
![](/Images/OutliningIndicators/None.gif)
47
![](/Images/OutliningIndicators/None.gif)
48
![](/Images/OutliningIndicators/None.gif)
49
![](/Images/OutliningIndicators/None.gif)
50
![](/Images/OutliningIndicators/None.gif)
51
![](/Images/OutliningIndicators/None.gif)
52
![](/Images/OutliningIndicators/None.gif)
53
![](/Images/OutliningIndicators/None.gif)
54
![](/Images/OutliningIndicators/None.gif)
55
![](/Images/OutliningIndicators/None.gif)
56
![](/Images/OutliningIndicators/None.gif)
57
![](/Images/OutliningIndicators/None.gif)
58
![](/Images/OutliningIndicators/None.gif)
59
![](/Images/OutliningIndicators/None.gif)
60
![](/Images/OutliningIndicators/None.gif)
61
![](/Images/OutliningIndicators/None.gif)
62
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
63
![](/Images/OutliningIndicators/InBlock.gif)
64
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
65
![](/Images/OutliningIndicators/InBlock.gif)
66
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
67
![](/Images/OutliningIndicators/InBlock.gif)
68
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
69
![](/Images/OutliningIndicators/InBlock.gif)
70
![](/Images/OutliningIndicators/InBlock.gif)
71
![](/Images/OutliningIndicators/InBlock.gif)
72
![](/Images/OutliningIndicators/InBlock.gif)
73
![](/Images/OutliningIndicators/InBlock.gif)
74
![](/Images/OutliningIndicators/InBlock.gif)
75
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
76
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
77
![](/Images/OutliningIndicators/None.gif)
78
![](/Images/OutliningIndicators/None.gif)
79
![](/Images/OutliningIndicators/None.gif)
源码下载:下载