`
wsql
  • 浏览: 11784022 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Asp.net中GDI+生成验证码

 
阅读更多

Register.aspx

// 当点击验证码图片时,自动重新导向一次authcode.aspx,就重新刷新一次验证码
$('#authimage').click(function() {
$(this).attr("src", "authcode.aspx");
});


验证码:<input id="authcode" type="text" class="required" name="authcode" />
<img src="authcode.aspx" width="60px" height="30px" style="cursor:pointer" id="authimage"/>
注意,这个验证码图片的路径是一个动态页面!我们就在这个动态页面中利用GDI+技术绘制出验证码

authcode.cs
public partial class authcode : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// 验证码中可能出现的字符
string authCodeString = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
// 验证码字符集合长度
int length = authCodeString.Length;
// 绘制字符字体
Font f = new Font("宋体", 24, FontStyle.Bold);
// 绘制验证码的画刷对象
Brush b = null;
// 绘制验证码的颜色
Color brushColor = new Color();
Bitmap image = new Bitmap(80, 40);
Graphics g = Graphics.FromImage(image);
g.Clear(Color.Gray);// 设置背景

string authCode = string.Empty;// 整个显示给用户的验证码
string code = string.Empty; // 当前绘制的验证码
Random random = new Random();
for (int i = 0; i < 4; i++)
{
// 取余保证current长度不会超过验证码字符集合长度
int current = random.Next((DateTime.Now.Millisecond) % length);

// 验证码字符集合任意截取一个字符
code = authCodeString.Substring(current, 1);
authCode += code;
brushColor = Color.FromArgb(random.Next(255), random.Next(255), random.Next(255));
b = new SolidBrush(brushColor);

// 绘制刚刚得到的字符串
g.DrawString(code, f, b, i * 15, 2);
}
Response.Clear();
Response.ContentType = "image/pjpeg";
// 将对象保存到Response输出流中
image.Save(Response.OutputStream, ImageFormat.Jpeg);
image.Dispose();
Session["authCode"] = authCode; // 在服务器端保存验证码,用来比较
Response.End();
}
}

分享到:
评论

相关推荐

    asp.net利用gdi+生成验证码

    asp.net利用gdi+生成验证码,内有一个类文件 和 一个网页

    ASP.NET Night Words

    第17章 asp.net中的gdi+技术 322 17.1 gdi+介绍 322 17.2 在数据中保存和显示图片 323 17.3 使用gdi+生成图片 330 17.4 验证码实现 331 17.5 总结 335 高 级 知 识 第18章 asp.net报表技术 338 18.1 owc控件...

    ASP.NET输出PNG图片时出现GDI+一般性错误的解决方法

    偶原来的用ASP.NET生成验证码图片时用的是JPG格式,今天想把它改成PNG格式的,结果就出现GDI+一般性错误,查了N久资料,才发现解决的办法,对分享此解决办法的网友深表感谢

    asp.net知识库

    ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎 正式发布表达式计算引擎WfcExp V0.9(附源码) 运算表达式类的原理及其实现 #实现的18位身份证...

    如何使用ASP.NET制作简单的验证码

    大家都知道验证码是以图片形式展示的,而且是动态生成的,这样就需要我们去画出它,那不得不提到是GDI+绘图了 科普一下,什么是GDI+? GDI+是图形设备接口(GDI)的高级版本, 提供了各种丰富的图形图像处理功能。...

    ASP.NET程序设计:图形验证码的实现.ppt

    本任务通过GDI+类提供的图形图像编程方法,实现字母和数字混合的图形验证码的绘制与验证。 5.3 Random类 Random类是一个伪随机数生成器,能够产生满足一定的随机性统计要求的数字序列。 初始化一个随机数发生器有两...

    C#发现之旅源码ASP.NET

    login.aspx是演示在ASP.NET中使用图形编程来使用验证码技术。 xslcreatecode.aspx基于XSLT的带插件的代码生成器 GDI+演示程序下载 椭圆形图形按钮源代码(ZIP格式) 简单数据网格控件源代码(ZIP格式) 简单的签名...

    2000 XP及2003系统不显验证码的补丁

    创建这些动态Web图形的唯一方法是使用服务器端的脚本,比如GD.pm和CGI/Perl脚本的结合,或者通过System.Drawing名字空间访问ASP.NET中的图形设计接口类库(GDI+)。 XBM创建起来很有程序性。每个位都被一一指定,而...

    aspnet公共类cs文件.rar

    供Asp.Net直接调用的包装类(WebPreview.cs) 计算机重启、关电源、注销、关闭显示器辅助类(WindowsExitHelper.cs) ----------NONONONO-------------- 全局统一的缓存类(Cache.cs) 常用显示日期时间、农历、生肖的...

    DotNet公用类(超多附文档)

    22.供Asp.Net直接调用的包装类(WebPreview.cs) 23.计算机重启、关电源、注销、关闭显示器辅助类(WindowsExitHelper.cs) ----------NONONONO-------------- 1.全局统一的缓存类(Cache.cs) 2.常用显示日期时间、农历...

    WHC第三方控件

    22. 供Asp.Net直接调用的包装类(WebPreview.cs) 23. 计算机重启、关电源、注销、关闭显示器辅助类(WindowsExitHelper.cs) ----------NONONONO-------------- 1. 全局统一的缓存类(Cache.cs) 2. 常用显示日期时间、...

Global site tag (gtag.js) - Google Analytics