【转载】Asp.Net生成图片验证码工具类
2019-07-23 05:41:48来源:博客园 阅读 ()
在Asp.Net应用程序中,很多时候登陆页面以及其他安全重要操作的页面需要输入验证码,本文提供一个生成验证码图片的工具类,该工具类通过随机数生成验证码文本后,再通过C#中的图片处理类位图类,字体类,一个LinearGradientBrush类等生成验证码图片。
本文生成图片验证码的采用Asp.Net中的一般处理程序文件ashx的文件,此文件一般继承于IHttpHandler的接口,是Asp.Net中一种比较常用的处理文件,比起.ASPX等页文件来,用ashx的文件生成图片验证码更为高效。
Asp.Net生成图片验证码工具类具体实现如下:
public class Handler:IHttpHandler,System.Web.SessionState.IRequiresSessionState { /// <summary> ///产生用于验证码的随机数 /// </ summary> /// <param name =“number”> < / param> /// <returns> </ returns> public string Get_Code(int number) { # region string s =“0AaB1oCb3pqD2cErf4dFs5GetHI6gu7JKLvhMwNixO8PyQj9zRSkTUVlWmXYnZ”; 随机rand = new Random(); StringBuilder builder = new StringBuilder(); for(int i = 0; i <number; i ++) { char code = s [rand.Next(s.Length)]; builder.Append(code.ToString()); } return builder.ToString(); #endregion } public void ProcessRequest(HttpContext context) { BLL_User userbll = new BLL_User(); string code = Get_Code(4); //生成验证码的四位随机码 context.Session [“Code”] = code; 位图图像=新位图(120,40); 图形g = Graphics.FromImage(图像); 试试 { g.Clear(Color.White); 随机rand = new Random(); for(int i = 0; i <30; i ++) { int x1 = rand.Next(Image.Width); int x2 = rand.Next(Image.Width); int y1 = rand.Next(Image.Height); int y2 = rand.Next(Image.Height); g.DrawLine(new Pen(Color.Silver),x1,y1,x2,y2); } Font font = new Font(“Arial”,20,FontStyle.Italic); LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0,0,Image.Width,Image.Height),Color.Blue,Color.DarkRed,5,true); g.DrawString(代码,字体,画笔,3,2); g.DrawRectangle(new Pen(Color.Silver),0,0,Image.Width - 1,Image.Height - 1); System.IO.MemoryStream stream = new System.IO.MemoryStream(); Image.Save(stream,ImageFormat.Gif); context.Response.Clear(); context.Response.ContentType =“image / Gif”; context.Response.BinaryWrite(stream.ToArray()); } finally { g.Dispose(); Image.Dispose(); } } public BOOL IsReusable { get { return false; } } }
在上述代码中,.ashx的文件类继承了System.Web.SessionState.IRequiresSessionState接口,主要是为了能够在.ashx的文件中能访问到会话变量,并将生成好的验证码信息存入会话中。
在网络前端界面要生成二维码图片的时候,直接将IMG标签的图片路径的src属性指向这个ashx的文件,例如这个.ashx的文件在网络项目中存放在根目录并且命名为ValidateCode.ashx,则在HTML文件中直接如下形式即可生成验证码图片:
<img src =“ValidateCode.ashx”此处编写其他属性/>
备注:原文转载自博主个人站IT技术小趣屋,原文链接为Asp.Net生成图片验证码工具类_IT技术小趣屋。
博主个人技术交流群:960640092,博主微信公众号如下:
原文链接:https://www.cnblogs.com/xu-yi/p/11186526.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- asp.net源程序编译为dll文件并调用的实现过程 2020-03-29
- Asp.net MVC SignalR来做实时Web聊天实例代码 2020-03-29
- ASP.NET MVC中jQuery与angularjs混合应用传参并绑定数据 2020-03-29
- Asp.Net中WebForm的生命周期 2020-03-29
- ASP.NET使用Ajax返回Json对象的方法 2020-03-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash