【asp.net core】asp.net mvc验证码类怎么用 mvc验证码类使用教程

时间:2020-12-19  来源:ASP.NET MVC  阅读:

验证码类

 代码如下 namespaceQJW.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");   //}       publicclassValidateCode   {     publicValidateCode()     {     }     ///     /// 验证码的最大长度     ///     publicintMaxLength     {       get{return10; }     }     ///     /// 验证码的最小长度     ///     publicintMinLength     {       get{return1; }     }     ///     /// 生成验证码     ///     /// 指定验证码的长度     ///     publicstringCreateValidateCode(intlength)     {       int[] randMembers =newint[length];       int[] validateNums =newint[length];       stringvalidateNumberStr ="";       //生成起始序列值       intseekSeek =unchecked((int)DateTime.Now.Ticks);       Random seekRand =newRandom(seekSeek);       intbeginSeek = (int)seekRand.Next(0, Int32.MaxValue - length * 10000);       int[] seeks =newint[length];       for(inti = 0; i < length; i++)       {         beginSeek += 10000;         seeks[i] = beginSeek;       }       //生成随机数字       for(inti = 0; i < length; i++)       {         Random rand =newRandom(seeks[i]);         intpownum = 1 * (int)Math.Pow(10, length);         randMembers[i] = rand.Next(pownum, Int32.MaxValue);       }       //抽取随机数字       for(inti = 0; i < length; i++)       {         stringnumStr = randMembers[i].ToString();         intnumLength = numStr.Length;         Random rand =newRandom();         intnumPosition = rand.Next(0, numLength - 1);         validateNums[i] = Int32.Parse(numStr.Substring(numPosition, 1));       }       //生成验证码       for(inti = 0; i < length; i++)       {         validateNumberStr += validateNums[i].ToString();       }       returnvalidateNumberStr;     }     ///     /// 创建验证码的图片     ///     /// 要输出到的page对象     /// 验证码     publicbyte[] CreateValidateGraphic(stringvalidateCode)     {       Bitmap image =newBitmap((int)Math.Ceiling(validateCode.Length * 12.0), 22);       Graphics g = Graphics.FromImage(image);       try       {         //生成随机生成器         Random random =newRandom();         //清空图片背景色         g.Clear(Color.White);         //画图片的干扰线         for(inti = 0; i < 25; i++)         {           intx1 = random.Next(image.Width);           intx2 = random.Next(image.Width);           inty1 = random.Next(image.Height);           inty2 = random.Next(image.Height);           g.DrawLine(newPen(Color.Silver), x1, y1, x2, y2);         }         Font font =newFont("Arial", 12, (FontStyle.Bold | FontStyle.Italic));         LinearGradientBrush brush =newLinearGradientBrush(newRectangle(0, 0, image.Width, image.Height),          Color.Blue, Color.DarkRed, 1.2f,true);         g.DrawString(validateCode, font, brush, 3, 2);         //画图片的前景干扰点         for(inti = 0; i < 100; i++)         {           intx = random.Next(image.Width);           inty = random.Next(image.Height);           image.SetPixel(x, y, Color.FromArgb(random.Next()));         }         //画图片的边框线         g.DrawRectangle(newPen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);         //保存图片数据         MemoryStream stream =newMemoryStream();         image.Save(stream, ImageFormat.Jpeg);         //输出图片流         returnstream.ToArray();       }       finally       {         g.Dispose();         image.Dispose();       }     }     ///     /// 得到验证码图片的长度     ///     /// 验证码的长度     ///     publicstaticintGetImageWidth(intvalidateNumLength)     {       return(int)(validateNumLength * 12.0);     }     ///     /// 得到验证码的高度     ///     ///     publicstaticdoubleGetImageHeight()     {       return22.5;     }   } }  

使用方法

   代码如下 publicFileContentResult CreateValidate() {   ValidateCode vCode =newValidateCode();   stringcode = vCode.CreateValidateCode(5);   Session["ValidateCode"] = code;   byte[] bytes = vCode.CreateValidateGraphic(code);     returnFile(bytes,"image/JPEG"); }  

HTML
 代码如下 javascript:;" onclick="reloadcode();"> 
视图JS 

   代码如下 functionreloadcode() {     varverify = document.getElementById("safecode");     verify.setAttribute("src","/common/CreateValidate?"+ Math.random());   }  

【asp.net core】asp.net mvc验证码类怎么用 mvc验证码类使用教程

http://m.bbyears.com/asp/117358.html

推荐访问:
相关阅读 猜你喜欢
本类排行 本类最新