asp.net mvc验证码类使用

这篇文章主要为大家详细介绍了asp.net mvc验证码类使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

验证码类

 namespace QJW.VerifyCode { //用法: //public FileContentResult CreateValidate() //{ //  ValidateCode vCode = new ValidateCode(); //  string code = vCode.CreateValidateCode(5); //  Session["ValidateCode"] = code; //  byte[] bytes = vCode.CreateValidateGraphic(code); //  return File(bytes, "image/JPEG"); //} public class ValidateCode { public ValidateCode() { } ///  /// 验证码的最大长度 ///  public int MaxLength { get { return 10; } } ///  /// 验证码的最小长度 ///  public int MinLength { get { return 1; } } ///  /// 生成验证码 ///  /// 指定验证码的长度 ///  public string CreateValidateCode(int length) { int[] randMembers = new int[length]; int[] validateNums = new int[length]; string validateNumberStr = ""; //生成起始序列值 int seekSeek = unchecked((int)DateTime.Now.Ticks); Random seekRand = new Random(seekSeek); int beginSeek = (int)seekRand.Next(0, Int32.MaxValue - length * 10000); int[] seeks = new int[length]; for (int i = 0; i  /// 创建验证码的图片 ///  /// 要输出到的page对象 /// 验证码 public byte[] CreateValidateGraphic(string validateCode) { Bitmap image = new Bitmap((int)Math.Ceiling(validateCode.Length * 12.0), 22); Graphics g = Graphics.FromImage(image); try { //生成随机生成器 Random random = new Random(); //清空图片背景色 g.Clear(Color.White); //画图片的干扰线 for (int i = 0; i <25; i++) { int x1 = random.Next(image.Width); int x2 = random.Next(image.Width); int y1 = random.Next(image.Height); int y2 = random.Next(image.Height); g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2); } Font font = new Font("Arial", 12, (FontStyle.Bold | FontStyle.Italic)); LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true); g.DrawString(validateCode, font, brush, 3, 2); //画图片的前景干扰点 for (int i = 0; i <100; i++) { int x = random.Next(image.Width); int y = random.Next(image.Height); image.SetPixel(x, y, Color.FromArgb(random.Next())); } //画图片的边框线 g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1); //保存图片数据 MemoryStream stream = new MemoryStream(); image.Save(stream, ImageFormat.Jpeg); //输出图片流 return stream.ToArray(); } finally { g.Dispose(); image.Dispose(); } } ///  /// 得到验证码图片的长度 ///  /// 验证码的长度 ///  public static int GetImageWidth(int validateNumLength) { return (int)(validateNumLength * 12.0); } ///  /// 得到验证码的高度 ///  ///  public static double GetImageHeight() { return 22.5; } } } 

使用方法

 public FileContentResult CreateValidate() { ValidateCode vCode = new ValidateCode(); string code = vCode.CreateValidateCode(5); Session["ValidateCode"] = code; byte[] bytes = vCode.CreateValidateGraphic(code); return File(bytes, "image/JPEG"); } 

HTML
 
视图JS 

 function reloadcode() { var verify = document.getElementById('safecode'); verify.setAttribute('src', '/common/CreateValidate?' + Math.random()); }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持html中文网。

以上就是asp.net mvc验证码类使用的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » ASP编程