PHP
发布时间:2022-04-09 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ASP.net 验证码实现代码(C#),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
public class ValidateCode : Sy
stem.Web.UI.Page
{ private void Page_Load(ob
ject sender, Sy
stem.EventArgs
E) { thi
s.Create
checkCodeImage(Generate
checkCode()
); }
#region Web 窗体设计器
生成的
代码 override protected void OnInit(EventArgs
E) { //
// CODEGEN: 该
调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent(
); base
.onInit(
E);
}
/// <sum
Mary>
/// 设计器
支持所需的
方法 - 不要使用
代码编辑器
修改 /// 此
方法的
内容。
/// </sum
Mary>
private void InitializeComponent()
{ thi
s.Load += new Sy
stem.EventHandler(thi
s.Page_Load
); }
#endregion
private
String Generate
checkCode()
{ int
number;
char code;
String
checkCode =
String.Empty;
Sy
stem.Random random = new Random(
); for(int i
=0; i<
5; i++)
{ number = rando
m.Next(
); if(
number % 2 == 0)
code = (char)('0' + (char)(
number % 10)
); else
code = (char)('A' + (char)(
number % 26)
); checkCode += code.To
String(
); }
Response.Cookie
s.Add(new
httpCookie("
checkCode",
checkCod
E)); return
checkCode;
}
private void Create
checkCodeImage(
String
checkCod
E) { if(
checkCode == null ||
checkCode.Trim() ==
String.Empty)
return;
Sy
stem.Drawing
.bitmap image = new Sy
stem.Drawing
.bitmap((
int)R_271_11845@ath.Ceiling((
checkCode.Length * 12.5)), 22
); Graphics g = Graphic
s.FromImage(imag
E);
try
{ //
生成随机生成器
Random random = new Random(
); //清空
图片背景色
g.Clear(Color.Whit
E);
//画
图片的背景噪音线
for(int i
=0; i<2
5; i++)
{ int x1 = rando
m.Next(image.Width
); int x2 = rando
m.Next(image.Width
); int y1 = rando
m.Next(image.Height
); int y2 = rando
m.Next(image.Height
); g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2
); }
Font font = new Sy
stem.Drawing.Font("Arial", 12, (Sy
stem.Drawing.FontStyle
.bold | Sy
stem.Drawing.FontStyle.Itali
C)); Sy
stem.Drawing.Drawing2D.LinearGradientBrush brush = new Sy
stem.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color
.blue, Color.DarkRed, 1.2f, tru
E);
g.Draw
String(
checkCode, font, brush, 2, 2
); //画
图片的前景噪音点
for(int i
=0; i<100; i++)
{ int x = rando
m.Next(image.Width
); int y = rando
m.Next(image.Height
); image.SetPixel(x, y, Color.FromArgb(rando
m.Next())
); }
//画
图片的边框线
g.DrawRectangle(new Pen(Color.Silver), image.Width - 1, image.Height - 1
); Sy
stem.IO.MemoryStream ms = new Sy
stem.IO.MemoryStream(
); image.Save(ms, Sy
stem.Drawing.Imaging.ImageFormat.Gif
); Response.ClearContent(
); Response.
c; Response
.binaryWrite(m
s.ToArray()
); }
finally
{ g.Dispose(
); image.Dispose(
); }
}
}
假如以上验证码
生成器
页面名为:
checkCode.aspx,那么在
登录页面中
使用“<IMG>” 这个 HTML 元素来
显示生成的验证码
图片:<IMG src="
checkCode.aspx">
在
登录页面的
登录按钮的处理事件中使用以下
代码判断验证码:
private void btnLogin_Click(ob
ject sender, Sy
stem.Web.UI.ImageClickEventArgs
E) { if(
request.Cookies["
checkCode"] == null)
{ lbl
message.Text = "您的浏览器设置已被禁用 Cookies,您必须设置浏览器允许使用 Cookies 选项后才能使用本系统。";
lbl
message.Visible = true;
return;
}
if(
String.Compare(
request.Cookies["
checkCode"].Value, txt
checkCode.Text, tru
E) != 0)
{ lbl
message.Text = "验证码
错误,请输入正确的验证码。";
lbl
message.Visible = true;
return;
}
}
大佬总结
以上是大佬教程为你收集整理的ASP.net 验证码实现代码(C#)全部内容,希望文章能够帮你解决ASP.net 验证码实现代码(C#)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。