C#验证码公用类
来源:互联网 发布:linux 装网卡 编辑:程序博客网 时间:2024/05/16 09:09
protected void GetCode() { System.Random rand = new Random(); int len = 4; //这里设置验证码长度,我的定义为4,最近见到些网上上有随机4,5,6位的。这里自己写个随机函数就可以了。 //char[] chars = "0123456789ABCDEFGHJKMNOPQRSTUVWXYZ".ToCharArray(); char[] chars = "123456789ABCDEFGHJKMNPQRSTUVWXYZ".ToCharArray(); System.Text.StringBuilder myStr = new System.Text.StringBuilder(); for (int iCount = 0; iCount < len; iCount++) { myStr.Append(chars[rand.Next(chars.Length)]); } string text = myStr.ToString(); // 保存验证码到 session 中以便其他模块使用 Session["code"] = text; //这里你的登陆页面判断输入验证码是否正确,if (txtCode.text == Session["code"]) 正确读库检索User/Password,不正确弹窗。自己写 Size ImageSize = Size.Empty; Font myFont = new Font("MS Sans Serif", 14, FontStyle.Bold); //绘制在验证图片上的文字大小 // 计算验证码图片大小 using (Bitmap bmp = new Bitmap(5, 5)) { using (Graphics g = Graphics.FromImage(bmp)) { SizeF size = g.MeasureString(text, myFont, 10000); ImageSize.Width = (int)size.Width + 3; ImageSize.Height = (int)size.Height + 3; } } // 创建验证码图片 using (Bitmap bmp = new Bitmap(ImageSize.Width, ImageSize.Height)) { // 绘制验证码文本 using (Graphics g = Graphics.FromImage(bmp)) { g.Clear(Color.White); using (StringFormat f = new StringFormat()) { f.Alignment = StringAlignment.Near; f.LineAlignment = StringAlignment.Center; f.FormatFlags = StringFormatFlags.NoWrap; g.DrawString(text, myFont, Brushes.Black, new RectangleF(0, 0, ImageSize.Width, ImageSize.Height), f); }//using }//using // 制造杂点 杂点面积占图片面积的 20% int num = ImageSize.Width * ImageSize.Height * 20 / 100; for (int iCount = 0; iCount < num; iCount++) { // 在随机的位置使用随机的颜色设置图片的像素 int x = rand.Next(ImageSize.Width); int y = rand.Next(ImageSize.Height); int r = rand.Next(255); int g = rand.Next(255); int b = rand.Next(255); Color c = Color.FromArgb(r, g, b); bmp.SetPixel(x, y, c); }//for // 输出图片 System.IO.MemoryStream ms = new System.IO.MemoryStream(); bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Png); this.Response.ContentType = "image/png"; ms.WriteTo(this.Response.OutputStream); ms.Close(); }//using myFont.Dispose(); }
阅读全文
0 0
- C#验证码公用类
- Asp.Net公用类之验证码生成类
- C#操作WORD公用类
- java生成图片验证码--公用
- 表单验证公用方法
- C#报表公用方法
- C#公用在线查询
- 一个公用的js验证
- 验证控件公用属性表
- 【 C# 公用类库】【 CoderBusy.Common 】0x01 :开篇
- C# GIF验证码类
- C# GIF验证码类
- C# GIF验证码类
- C# GIF验证码类
- C#验证码类代码
- C# 验证码生成类
- jquery struts 验证唯一标识 公用方法
- 表单验证等其他公用js方法
- 关于dao设计模式,父类对象实例化指向子类,xxxDao xxx = new xxxDaoImpl的理解
- spark的运行模式总结
- 白盒测试
- Oracle中的Union、Union All、Intersect、Minus
- Java项目经验——程序员成长的钥匙
- C#验证码公用类
- 【机器学习实战】第15章 大数据与MapReduce
- Ionic3学习笔记(五)动画之使用 animate.css
- 如何优化图片
- Unity常用API学习
- Android 设计模式之单例模式
- (八)注释规约
- Android开发手机影音篇之软件结构分析
- 记一次电脑启动失败