前台
<img src="/static/imghwm/default1.png" data-src="/Home/VCode" class="lazy" id="vcodeimg" style="max-width:90%" height="25" /> <span style="cursor: pointer; text-decoration: underline">换一张</span>
控制器
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using Utility; using Jellal**; namespace sjlwebsite.Controllers { public class CommonController : Controller { #region 验证码 [OutputCache(Duration = 0)] public ActionResult VCode() { string code = ValidateCode.CreateRandomCode(4); Session["vcode"] = code; ValidateCode.CreateImage(code); return View(); } public string GetCode() { return Session["vcode"].ToStr(); } #endregion } }
驗證碼類
using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace Utility { /// <summary> /// 完美随机验证码 0.10 /// Verion:0.10 /// Description:随机生成设定验证码,并随机旋转一定角度,字体颜色不同 /// </summary> public class ValidateCode { /// <summary> /// 生成随机码 /// </summary> /// <param name="length">随机码个数www.52mvc.com</param> /// <returns></returns> public static string CreateRandomCode(int length) { int rand; char code; string randomcode = String.Empty; //生成一定长度的验证码 System.Random random = new Random(); for (int i = 0; i < length; i++) { rand = random.Next(); if (rand % 3 == 0) { code = (char)('A' + (char)(rand % 26)); } else { code = (char)('0' + (char)(rand % 10)); } randomcode += code.ToString(); } return randomcode; } /// <summary> /// 创建随机码图片 /// </summary> /// <param name="randomcode">随机码</param> public static void CreateImage(string randomcode) { int randAngle = 45; //随机转动角度 int mapwidth = (int)(randomcode.Length * 23); Bitmap map = new Bitmap(mapwidth, 28);//创建图片背景 Graphics graph = Graphics.FromImage(map); graph.Clear(Color.AliceBlue);//清除画面,填充背景 graph.DrawRectangle(new Pen(Color.Black, 0), 0, 0, map.Width - 1, map.Height - 1);//画一个边框 //graph.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;//模式 Random rand = new Random(); //背景噪点生成 www.jb51.net Pen blackPen = new Pen(Color.LightGray, 0); for (int i = 0; i < 50; i++) { int x = rand.Next(0, map.Width); int y = rand.Next(0, map.Height); graph.DrawRectangle(blackPen, x, y, 1, 1); } //验证码旋转,防止机器识别 char[] chars = randomcode.ToCharArray();//拆散字符串成单字符数组 //文字距中 StringFormat format = new StringFormat(StringFormatFlags.NoClip); format.Alignment = StringAlignment.Center; format.LineAlignment = StringAlignment.Center; //定义颜色 Color[] c = { Color.Black, Color.Red, Color.DarkBlue, Color.Green, Color.Orange, Color.Brown, Color.DarkCyan, Color.Purple }; //定义字体 string[] font = { "Verdana", "Microsoft Sans Serif", "Comic Sans MS", "Arial", "宋体" }; for (int i = 0; i < chars.Length; i++) { int cindex = rand.Next(7); int findex = rand.Next(5); Font f = new System.Drawing.Font(font[findex], 13, System.Drawing.FontStyle.Bold);//字体样式(参数2为字体大小) Brush b = new System.Drawing.SolidBrush(c[cindex]); Point dot = new Point(16, 16); //graph.DrawString(dot.X.ToString(),fontstyle,new SolidBrush(Color.Black),10,150);//测试X坐标显示间距的 float angle = rand.Next(-randAngle, randAngle);//转动的度数 graph.TranslateTransform(dot.X, dot.Y);//移动光标到指定位置 graph.RotateTransform(angle); graph.DrawString(chars.ToString(), f, b, 1, 1, format); //graph.DrawString(chars.ToString(),fontstyle,new SolidBrush(Color.Blue),1,1,format); graph.RotateTransform(-angle);//转回去 graph.TranslateTransform(2, -dot.Y);//移动光标到指定位置 } //graph.DrawString(randomcode,fontstyle,new SolidBrush(Color.Blue),2,2); //标准随机码 //生成图片 System.IO.MemoryStream ms = new System.IO.MemoryStream(); map.Save(ms, System.Drawing.Imaging.ImageFormat.Gif); HttpContext.Current.Response.ClearContent(); HttpContext.Current.Response.ContentType = "image/gif"; HttpContext.Current.Response.BinaryWrite(ms.ToArray()); graph.Dispose(); map.Dispose(); } } }
更多ASP.NET MVC驗證碼功能實現代碼相關文章請關注PHP中文網!

如何將C#.NET應用部署到Azure或AWS?答案是使用AzureAppService和AWSElasticBeanstalk。 1.在Azure上,使用AzureAppService和AzurePipelines自動化部署。 2.在AWS上,使用AmazonElasticBeanstalk和AWSLambda實現部署和無服務器計算。

C#和.NET的結合為開發者提供了強大的編程環境。 1)C#支持多態性和異步編程,2).NET提供跨平台能力和並發處理機制,這使得它們在桌面、Web和移動應用開發中廣泛應用。

.NETFramework是一個軟件框架,C#是一種編程語言。 1..NETFramework提供庫和服務,支持桌面、Web和移動應用開發。 2.C#設計用於.NETFramework,支持現代編程功能。 3..NETFramework通過CLR管理代碼執行,C#代碼編譯成IL後由CLR運行。 4.使用.NETFramework可快速開發應用,C#提供如LINQ的高級功能。 5.常見錯誤包括類型轉換和異步編程死鎖,調試需用VisualStudio工具。

C#是一種由微軟開發的現代、面向對象的編程語言,.NET是微軟提供的開發框架。 C#結合了C 的性能和Java的簡潔性,適用於構建各種應用程序。 .NET框架支持多種語言,提供垃圾回收機制,簡化內存管理。

C#和.NET運行時緊密合作,賦予開發者高效、強大且跨平台的開發能力。 1)C#是一種類型安全且面向對象的編程語言,旨在與.NET框架無縫集成。 2).NET運行時管理C#代碼的執行,提供垃圾回收、類型安全等服務,確保高效和跨平台運行。

要開始C#.NET開發,你需要:1.了解C#的基礎知識和.NET框架的核心概念;2.掌握變量、數據類型、控制結構、函數和類的基本概念;3.學習C#的高級特性,如LINQ和異步編程;4.熟悉常見錯誤的調試技巧和性能優化方法。通過這些步驟,你可以逐步深入C#.NET的世界,並編寫高效的應用程序。

C#和.NET的關係是密不可分的,但它們不是一回事。 C#是一門編程語言,而.NET是一個開發平台。 C#用於編寫代碼,編譯成.NET的中間語言(IL),由.NET運行時(CLR)執行。

C#.NET依然重要,因為它提供了強大的工具和庫,支持多種應用開發。 1)C#結合.NET框架,使開發高效便捷。 2)C#的類型安全和垃圾回收機制增強了其優勢。 3).NET提供跨平台運行環境和豐富的API,提升了開發靈活性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版