在开发CRM客户关系管理系统中自写的C#验证码控件
在上个月根据需求文档做CRM客户关系管理系统时,写的一个验证码控件,可以有效防止暴力破解登录,控件比较简单易懂,基本上每句我都写了注释,需要的同学直接复制下面的代码到VS里,整理一下格式即可!
效果图:
代码:
public void ProcessRequest(HttpContext context) { //设置输出格式 context.Response.ContentType = "image/jpeg"; //创建图片并且设置大小 Bitmap map = new Bitmap(60, 20); //在创建的图片上创建内容 Graphics gra = Graphics.FromImage(map); //用FillRectangle方法填充图片背景 gra.FillRectangle(new SolidBrush(Color.White), 0, 0, 60, 20); //创建一个字符串,用于被随机抽取内容 string Zf = "0123456789"; //实例化随机数方法 Random rd = new Random(); //设置一个字符串,储存被随机调出的内容 string a = ""; //for循环,随机取4个内容,相加到a中 for (int i = 0; i < 4; i++) { int index = rd.Next(0, Zf.Length); a += Zf[index]; } //设置图片内容的格式,包括字体,字体颜色,位置 gra.DrawString(a.ToString(), new Font("宋体", 15), new SolidBrush(Color.Blue), 6, 0); //增加干扰点 for (int i = 0; i < 55; i++) { map.SetPixel(rd.Next(0, 60), rd.Next(0, 20), Color.Blue); } //增加干扰线 gra.DrawLine(new Pen(new SolidBrush(Color.Black)), rd.Next(0, 60), rd.Next(0, 20), rd.Next(0, 60), rd.Next(0, 20)); //实例化一个新文档流 MemoryStream mem = new MemoryStream(); //将图片转化为二进制格式 map.Save(mem, ImageFormat.Jpeg); //将验证码储存为session,以备对比使用 context.Session["yzm"] = a; //向页面输出二进制图片格式文档流,文档流是一个数组格式 context.Response.BinaryWrite(mem.ToArray()); }
版权声明:
作者:兴兴
文章:在开发CRM客户关系管理系统中自写的C#验证码控件
链接:https://www.networkcabin.com/original/395
文章版权归本站所有,未经授权请勿转载。
作者:兴兴
文章:在开发CRM客户关系管理系统中自写的C#验证码控件
链接:https://www.networkcabin.com/original/395
文章版权归本站所有,未经授权请勿转载。
THE END