???? ???
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() { } /// <summary> /// 驗(yàn)證碼的最大長(zhǎng)度 /// </summary> public int MaxLength { get { return 10; } } /// <summary> /// 驗(yàn)證碼的最小長(zhǎng)度 /// </summary> public int MinLength { get { return 1; } } /// <summary> /// 生成驗(yàn)證碼 /// </summary> /// <param name="length">指定驗(yàn)證碼的長(zhǎng)度</param> /// <returns></returns> 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 < length; i++) { beginSeek += 10000; seeks[i] = beginSeek; } //生成隨機(jī)數(shù)字 for (int i = 0; i < length; i++) { Random rand = new Random(seeks[i]); int pownum = 1 * (int)Math.Pow(10, length); randMembers[i] = rand.Next(pownum, Int32.MaxValue); } //抽取隨機(jī)數(shù)字 for (int i = 0; i < length; i++) { string numStr = randMembers[i].ToString(); int numLength = numStr.Length; Random rand = new Random(); int numPosition = rand.Next(0, numLength - 1); validateNums[i] = Int32.Parse(numStr.Substring(numPosition, 1)); } //生成驗(yàn)證碼 for (int i = 0; i < length; i++) { validateNumberStr += validateNums[i].ToString(); } return validateNumberStr; } /// <summary> /// 創(chuàng)建驗(yàn)證碼的圖片 /// </summary> /// <param name="containsPage">要輸出到的page對(duì)象</param> /// <param name="validateNum">驗(yàn)證碼</param> public byte[] CreateValidateGraphic(string validateCode) { Bitmap image = new Bitmap((int)Math.Ceiling(validateCode.Length * 12.0), 22); Graphics g = Graphics.FromImage(image); try { //生成隨機(jī)生成器 Random random = new Random(); //清空?qǐng)D片背景色 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); //畫圖片的前景干擾點(diǎn) 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); //保存圖片數(shù)據(jù) MemoryStream stream = new MemoryStream(); image.Save(stream, ImageFormat.Jpeg); //輸出圖片流 return stream.ToArray(); } finally { g.Dispose(); image.Dispose(); } } /// <summary> /// 得到驗(yàn)證碼圖片的長(zhǎng)度 /// </summary> /// <param name="validateNumLength">驗(yàn)證碼的長(zhǎng)度</param> /// <returns></returns> public static int GetImageWidth(int validateNumLength) { return (int)(validateNumLength * 12.0); } /// <summary> /// 得到驗(yàn)證碼的高度 /// </summary> /// <returns></returns> 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"); }
function reloadcode() { var verify = document.getElementById('safecode'); verify.setAttribute('src', '/common/CreateValidate?' + Math.random()); }
? ??? ? ??? ?? ?????. ?? ??? ??? ??? ? ???, ?? ??? PHP ??? ????? ??? ??? ????.
asp.net mvc ?? ?? ??? ??? ??? ? ?? ??? ??? PHP ??? ????? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

CustomAttributes? C#? ???? ?????? ?? ???? ?? ??? ?????. ?? ??? ???? ???? ????. ?? ???? ???? ????. ???? ??? ?? ??, ?? ?? ?? ?? ??? ???? ?? ??? ????. 1. CustomAttributes? ??? ????, ?? ???? ??? ???? ?? ???, ??? ?? ???? ? ?????. 2. ??? ???? ?? ? ???? ???? AttributeUsage? ???? ?? ???? ??? ???????. 3. ?? ???? ??? attribute.getCustomAttribute ()? ???? ?? ?? ??? ?? ?? ??? ?? ? ????.

C#?? ??? ?? ? ??? ??? ???? ??? ?? ? ??? ??? ???? ????? ??? ???? ????? ?? ???? ?? ??? ??? ????. 1. Readonly Fields? ???? ??? ???? ???? ?? ???? ??? ??? ??? ?? ?? ? ????????. 2. ??? ??? ?????, ?? ??? ?? ??? ???? ?? readonlycollection ?? Emutablelist? ?? ??? ??? ?????? ??????. 3. ???? ???? ?? ??? ??? ????? ??? ???? ??? ????? ?? ?? ?? ? ???? ?????. 4. ?? ?? ??? ?? ? System.Collections.imm? ???? ?? ????.

??? ???? ?? ? ? C#? ????, ?? ??? ? ??? ??? ??? ?? ??? ? ? ????. 1. ???? ??? ???? ??? ?? ???? ??? ?? ??? ?? ?? efcore? asasyncenumerable? ?? ?? ?? ??? ????. 2. ??? ?? ???? ??? ?????? ??? ????? ?? (??. 3. ?? ?? ? ??? ?? ??? ??? ?? ???? ??? ?? (? : ??, ?? ??) ? ??? ????? (? : System.text.json, MessagePack)? ??????.

??? ???? ?? ?? ? ???? ??? ????? C#? ?????. ?? ???? ?? ?? ??, ???? ?? ??, ?? ?? ? ?? ??? ?????. ???? ?? ???? ????? ??? ????. 1. ?? ???? ??? ????? ???? ?? ?? ??? ??? ???? ??????. 2. ???? ???? ???? ?? DLL????? ?????? ??????. 3. ?? ?? ??? ?? ?? ?? ??? ?? ?? ??? ? ?? ??. ??? ??? ?? ?? ?? ??, ??? ?? ? ??? ??????? ???????. ??? ???? ?? ?? ??, ???? ???? ?? ???? ????? IL ??? ???? ?? ?????. ??? ???? ??? ???? ???? ???? ???? ? ????.

ASP.NETCORE?? ??? ?? ????? ???? ???? ???? ???? ??? ? ????. 1. invokeAsync ???? ?? ? ???? ???? HTTPContext ? requestDelegatenext? ?????. 2. Program.cs?? Usemiddleware? ??????. ????? ??, ?? ????, ?? ?? ?? ?? ???? ??? ?????. MVC ??? ?? ?? ???????? ???? ????? ???? ????. ????? ????? ???? ??? ???? ???? ? ??? ??? ??? ??? ??????.

C# ??? ? ???? ??? ?? ?? ? ??? ??????. ??? ????? ???, ?? ?? ?? (SRP)? ???, ??? ??? ? ??? ???? ????? ?? ?????, ??? ? ????? ?? ?? ??? ???, ???? ?? ? ?? ??? ??????. ??? ????? ? ??? ?? (DI)? ?? ??, ?? ?? ? ????? ???? ???????. ?? ???? ?? ???? ???? ?? ??? ???? ??? ???? ??? ???? ??? ???????. ??? ? ?? ?? ???? ????? ?? ?? ??? ????? ?? ??? ???????. ??? ??? ??, ??? ?? ? ??? ??? ? ??? ???? ?? ???? ?? ??? ?? ?? ? ? ????.

LINQ? ??? ? ?? ??? ??????. 1. ??? ?? ?? ???? ??????? ?????? ?? ??? ??? ?? ???, ?? ?? ??? ??? ?? ??? ??? ??? ??? ? LINQ? ?? ??? ?????. 2. ?? ??? ??? ???? ?? ?? ??? ??? ?? ??? ??? ? ??? ?? ??? ?? ?? ?? ??? ???????. 3. ?? ? ??? ?? ?????? ???? ?? ??? ?? ??? ?? ? ? ??? ??? ??? ??? ?? ?? ???? ?? ? ? ????. 4. ??? ???? ?? ?? ???? ??? ??? ?? ??? ??? ?? ??? ??? ?? ? ??? ?????.

???? ??? ?? ?? ??? ???? ?? ?? ?? ?? ??? ???? ? ???? ?? ???? ?? ?? ??? ?????. ?? ??, wheret : icompytion? t? ??? ? ?????. ienumerable? ?? ???? ienumerable? ienumerable? ?? ? ? ??? ?? ? ??? ? ????. ???? ?? ???? ???, struct, new (), ?? ??? ? ?????? ????, ?? ??? ??? ?????. ????? ?? ???? ???? ??? (???)? ?? ????? ? ?????? ?????. ???? ???? ???? ???, ???? ?? ? ? ???, ??? ???? ??? ????.
