添加一個web窗體
然後將下面的代碼添加進去
並重命名該窗體為checkCode
aspx;
public class ValidateCode : System
Web
UI
Page
{
private void Page_Load(object sender
System
EventArgs e)
{
this
CreateCheckCodeImage(GenerateCheckCode())
}
#region Web 窗體設計器生成的代碼
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 該調用是 ASP
NET Web 窗體設計器所必需的
//
InitializeComponent()
base
OnInit(e)
}
/// <summary>
/// 設計器支持所需的方法
不要使用代碼編輯器修改
/// 此方法的內容
/// </summary>
private void InitializeComponent()
{
this
Load += new System
EventHandler(this
Page_Load)
}
#endregion
private string GenerateCheckCode()
{
int number;
char code;
string checkCode = String
Empty;
System
Random random = new Random()
for(int i=
; i<
; i++)
{
number = random
Next()
if(number %
==
)
code = (char)(
+ (char)(number %
))
else
code = (char)(
A
+ (char)(number %
))
checkCode += code
ToString()
}
Response
Cookies
Add(new HttpCookie(
CheckCode
checkCode))
return checkCode;
}
private void CreateCheckCodeImage(string checkCode)
{
if(checkCode == null || checkCode
Trim() == String
Empty)
return;
System
Drawing
Bitmap image = new System
Drawing
Bitmap((int)Math
Ceiling((checkCode
Length *
))
)
Graphics g = Graphics
FromImage(image)
try
{
//生成隨機生成器
Random random = new Random()
//清空圖片背景色
g
Clear(Color
White)
//畫圖片的背景噪音線
for(int i=
; i<
; i++)
{
int x
= random
Next(image
Width)
int x
= random
Next(image
Width)
int y
= random
Next(image
Height)
int y
= random
Next(image
Height)
g
DrawLine(new Pen(Color
Silver)
x
y
x
y
)
}
Font font = new System
Drawing
Font(
Arial
(System
Drawing
FontStyle
Bold | System
Drawing
FontStyle
Italic))
System
Drawing
Drawing
D
LinearGradientBrush brush = new System
Drawing
Drawing
D
LinearGradientBrush(new Rectangle(
image
Width
image
Height)
Color
Blue
Color
DarkRed
f
true)
g
DrawString(checkCode
font
brush
)
//畫圖片的前景噪音點
for(int i=
; i<
; i++)
{
int x = random
Next(image
Width)
int y = random
Next(image
Height)
image
SetPixel(x
y
Color
FromArgb(random
Next()))
}
//畫圖片的邊框線
g
DrawRectangle(new Pen(Color
Silver)
image
Width
image
Height
)
System
IO
MemoryStream ms = new System
IO
MemoryStream()
image
Save(ms
System
Drawing
Imaging
ImageFormat
Gif)
Response
ClearContent()
Response
ContentType =
image/Gif
;
Response
BinaryWrite(ms
ToArray())
}
finally
{
g
Dispose()
image
Dispose()
}
}
}
在你要顯示驗證碼的窗體中添加一個image控件
並命名為imgCheckCode
用於顯示驗證碼
再添加一個lable
並命名為lblMessage
用於顯示錯誤信息
然後在該窗體的Page_Load中添加
this
imgCheckCode
ImageUrl =
checkCode
aspx
;
在登錄頁面的登錄按鈕的處理事件中使用以下代碼判斷驗證碼
private void btnLogin_Click(object sender
System
Web
UI
ImageClickEventArgs e)
{
if(Request
Cookies[
checkCode
] == null)
{
lblMessage
Text =
您的浏覽器設置已被禁用 Cookies
您必須設置浏覽器允許使用 Cookies 選項後才能使用本系統
;
lblMessage
Visible = true;
return;
}
if(String
Compare(Request
Cookies[
checkCode
]
Value
txtCheckCode
Text
true) !=
)
{
lblMessage
Text =
驗證碼錯誤
請輸入正確的驗證碼
;
lblMessage
Visible = true;
return;
}
}
這樣就能實現你所要的驗證碼驗證了
From:http://tw.wingwit.com/Article/program/net/201311/13119.html