国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

MVC驗證碼的編寫

2019-11-17 01:30:18
字體:
來源:轉載
供稿:網友

MVC驗證碼的編寫

主要是相互學習一下mvc,希望各位大神指導

 1 /// <summary> 2         /// 生成隨機數(shù)字 3         /// </summary> 4         /// <returns>隨機數(shù)字</returns> 5         public string GetCode(int len = 4) 6         { 7             string strCode = string.Empty; 8             char code; 9             int num;10             Random rnd = new Random();11             for (int i = 0; i < len; i++)12             {13                 num = rnd.Next();14                 if (num % 2 == 0)15                 {16                     code = (char)('0' + (char)(num % 10));17                 }18                 else19                 {20                     //code = (char)('0' + (char)(num % 10));21                    code = (char)('A' + (char)(num % 26));22                 }23                 strCode += code.ToString();24             }25             return strCode;26         }
生成隨機數(shù)
 1         /// <summary> 2         /// 生成驗證碼(保存驗證碼到圖片) 3         /// </summary> 4         /// <returns>二進制</returns> 5         public byte[] PRocessRequestImage(string validateCode) 6         { 7  8             HttpContext context = HttpContext.Current; 9             using (Bitmap bmp = new Bitmap(validateCode.Length * 15 + 10, 28))10             {11                 Graphics g = Graphics.FromImage(bmp);12                 g.Clear(Color.White);13                 Random rnd = new Random();14                 for (int i = 0; i < 2; i++)15                 {16                     int x1 = rnd.Next(bmp.Width);17                     int y1 = rnd.Next(bmp.Height);18                     int x2 = rnd.Next(bmp.Width);19                     int y2 = rnd.Next(bmp.Height);20                     g.DrawLine(new Pen(Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255))), x1, y1, x2, y2);21                 }22                 g.DrawRectangle(new Pen(Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255))), new Rectangle(0, 0, bmp.Width - 1, bmp.Height - 1));23                 for (int i = 0; i < 25; i++)24                 {25                     bmp.SetPixel(rnd.Next(bmp.Width), rnd.Next(bmp.Height), Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)));26                 }27                 for (int i = 0; i < validateCode.Length; i++)28                 {29                     FontFamily[] familys = FontFamily.Families;30                     FontFamily family = familys[rnd.Next(familys.Length)];31                     g.DrawString(validateCode[i].ToString(), new Font(family, 14, FontStyle.Bold), new SolidBrush(Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255))), new PointF(1 + i * 15, 1));32                 }33 34                 //保存圖片數(shù)據35                 MemoryStream stream = new MemoryStream();36                 bmp.Save(stream, ImageFormat.Jpeg);37 38                 //  輸出圖片流39                 return stream.ToArray();40             }41         }
生成驗證碼圖片
 1      /// <summary> 2         /// 驗證碼 3         /// </summary> 4         /// <returns></returns>  5         public ActionResult VerifyCode() 6         { 7             h.Base.Public.SecurityCode seCode = new h.Base.Public.SecurityCode(); 8             var code = seCode.GetCode(); 9             session["code"] = code;10             var bytes = seCode.ProcessRequestImage(code);11             return File(bytes, "image/jpeg");12         }
控制器代碼
 1   <div class="pdiv"> 2                 <input type="image" id="valiCode"     src="/Based/VerifyCode" /> 3 </div> 4  5 <script> 6     (function () { 7   //刷新驗證碼 8         var codeUrl = "/Based/VerifyCode"; 9         $(valiCode).on("click", function () {10             this.src = codeUrl + "?time=" + (new Date()).getTime();11         });12 13     })(jQuery)14 </script>
view視圖代碼

這段代碼我測試過了。。 是可以通過的。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 龙泉市| 新巴尔虎左旗| 安多县| 绥化市| 长治市| 周宁县| 武隆县| 独山县| 昭觉县| 荆州市| 丰镇市| 彰化市| 枝江市| 道孚县| 静乐县| 永登县| 建昌县| 长岛县| 柳江县| 东海县| 三江| 巴林右旗| 乌兰浩特市| 鹤岗市| 济阳县| 定远县| 洛隆县| 罗田县| 张家港市| 团风县| 崇左市| 沾化县| 大庆市| 荆州市| 南岸区| 龙陵县| 南郑县| 古浪县| 易门县| 青州市| 崇州市|