`
bulote
  • 浏览: 1310260 次
文章分类
社区版块
存档分类
最新评论

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+生成验证码,内有一个类文件 和 一个网页

    GDI+验证码源码,功能很强大!

    C#版本的验证码图片生成源码,其他语言编写亦可借鉴!!!蛮强大滴,伙计...

    C#用GDI+技术画的验证码

    使用GDI+技术生成的验证码,易懂,适合初学者、入门者

    基于C#的GDI+功能的复杂型防识别验证码

    该类是生成一个验证码的类。本人集合了网上大部分的C#关于GDI+的文章进行多次改进,现在已经形成了可在生产环节中使用的验证码。 该验证码加入了背景噪点,背景噪点曲线和直线,背景噪点文字以及扭曲,调暗,模糊等...

    Windows版验证码生成程序

    本程序是采用Windows GDI+技术模拟Web上的验证码生成而设计的一款Windows版验证码随机生成程序,利用GDI+图形图像处理技术,可随机生成强验证码(即汉字验证码)或弱验证码(即数字和字母组合验证码),支持验证码的...

    c#窗体验证码

    Windows验证码生成程序GDI+修订了编程模式,使得图形硬件和应用程序相互隔离,也使开发人员编写设备无关的应用程序变得更加容易。...为了提高程序的通用性,我将生成验证码的程序单独封装成为一个类

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

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

    易语言-易语言内存生成验证码

    上次发了一个易语言内存生成验证码的源码,后来压力测试的时候发现多线程下程序会崩溃。原因是 GDI 在多线程创建hDC的时候,经常会失败,内存hDC只有一个工作区域,导致多线程冲突 所以后来研究了一段时间发现,多...

    难以破解的水纹验证码生成器

    多的就不说了 样例查看这里: http://blog.csdn.net/aimeast/archive/2010/02/11/5306074.aspx

    易语言生成验证码图片-易语言

    源码介绍: 使用GDI+,内存场景中创建验证码图片,输出.jpg格式的图片字节集 支持自定义字体,前提是你的电脑里必须安装了这些字体 支持设置验证码图片大小 每个验证码图片大小在1K左右

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

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

    Linux/Docker 中使用 System.Drawing.Common 踩坑记录分享

    在项目迁移到 .net core 上面后,我们可以使用 System.Drawing.Common 组件来操作 Image,Bitmap 类型,实现生成验证码、二维码,图片操作等功能。System.Drawing.Common 组件它是依赖于 GDI+ 的,然后在 Linux 上并...

    易语言-用易语言生成验证码图片,做易语言web开发必备

    使用GDI+,内存场景中创建验证码图片,输出.jpg格式的图片字节集 支持自定义字体,前提是你的电脑里必须安装了这些字体 支持设置验证码图片大小 每个验证码图片大小在1K左右 使用场景: 易语言开发web服务器! 最近...

    c# .net 生成图片验证码的代码

    说明: .net 万岁… .net framework 的类库真是太强了, 用 GDI+ 可以干N多N多事情. 广告时间: shawl.qiu C# CMS 系统 预计40天后开始编码, 现在逐步设计中, 免得到时求职说什么什么作品…唉. PS: 今天...

    易语言GDI验证码生成源码(适用于后端开发)-易语言

    生成验证码直接通过字节集发送至至客户的前端页面或软件页面、更适用于E2EE

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

    为什么XP SP2会默认不显示验证码呢?原来微软公司在XP SP2里面默认不显示XBM图形格式。 X-Bitmap(XBM)是一种古老但通用的图像文件格式,它与现在的许多Web浏览器都兼容。X-Windows图形界面(UNIX和Linux常用的GUI...

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

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

    ASP.NET Night Words

    17.3 使用gdi+生成图片 330 17.4 验证码实现 331 17.5 总结 335 高 级 知 识 第18章 asp.net报表技术 338 18.1 owc控件的使用 338 18.2 zedgraph控件的使用 344 18.3 rdlc报表的使用 349 18.4 总结 355 第...

    C#基类库大全

    GDI+相关,图像相关 1.生成缩略图的类文件SmallImage C#基础类库 1.Chart图形 Assistant创建显示图像的标签和文件 OWCChart统计图的封装类 2.Cookie&Session;&Cache;缓存帮助类 CacheHelper C#操作缓存的帮助类 ...

Global site tag (gtag.js) - Google Analytics