ASP.NET生成验证码的方法
程序员文章站
2022-03-08 13:53:21
本文实例为大家分享了asp.net生成验证码的具体代码,供大家参考,具体内容如下首先,添加一个一般处理程序注释很详细了,有不懂的欢迎评论using system;using system.collec...
本文实例为大家分享了asp.net生成验证码的具体代码,供大家参考,具体内容如下
首先,添加一个一般处理程序
注释很详细了,有不懂的欢迎评论
using system; using system.collections.generic; using system.drawing; using system.linq; using system.web; using system.web.sessionstate; namespace project_practice { /// <summary> /// handler1 的摘要说明 /// </summary> public class handler1 : ihttphandler,irequiressessionstate { public void processrequest(httpcontext context) { //选取的颜色 color[] colors = { color.white }; //通过bitmap构造image image img = new bitmap(100, 60); //graphics绘画image graphics graphics = graphics.fromimage(img); random random = new random(datetime.now.millisecond); //验证码的四位数 int charnum1 = random.next('0', '9' + 1); int charnum2 = random.next('0', '9' + 1); int charnum3 = random.next('0', '9' + 1); int charnum4 = random.next('0', '9' + 1); //把生成的随机数变成字符串,通过char进行转换 string validcode = string.format($"{(char)charnum1}{(char)charnum2}{(char)charnum3}{(char)charnum4}"); //放进session进行存储,记得继承接口,否则疯狂报空指针 context.session["verification_code"] = validcode; //字体的大小和类别 font font = new font("宋体", 24); //随机的颜色 brush brush1 = new solidbrush(colors[random.next(0, colors.length - 1)]); //drawstring的四个参数,第一个是要写的字符,第二个是字体,第三个是颜色,第四个是坐标x,y graphics.drawstring(((char)charnum1).tostring(), font, brush1, 7, -3); brush brush2 = new solidbrush(colors[random.next(0, colors.length - 1)]); graphics.drawstring(((char)charnum2).tostring(), font, brush2, 26, -9); brush brush3 = new solidbrush(colors[random.next(0, colors.length - 1)]); graphics.drawstring(((char)charnum3).tostring(), font, brush3, 50, 0); brush brush4 = new solidbrush(colors[random.next(0, colors.length - 1)]); graphics.drawstring(((char)charnum4).tostring(), font, brush4, 70, -7); //保存,格式 context.response.contenttype = "image/jpeg"; img.save(context.response.outputstream, system.drawing.imaging.imageformat.jpeg); //释放资源 graphics.dispose(); img.dispose(); } public bool isreusable { get { return false; } } } }
一个web窗体
<%@ page language="c#" autoeventwireup="true" codebehind="verification_code.aspx.cs" inherits="project_practice.verification_code" %> <!doctype html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:image id="image1" runat="server" imageurl="~/handler1.ashx" /> </div> </form> </body> </html>
效果图
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: 荐 听说你想爬点壁(mei)纸图