asp.net core3.1 實戰開發(驗證碼的封裝和使用)
封裝
public class VerifyCodeHelper
{
public static Bitmap CreateVerifyCode(out string code)
{
//建立Bitmap物件,繪圖
Bitmap bitmap = new Bitmap(200, 60);
Graphics graph = Graphics.FromImage(bitmap);
graph.FillRectangle(new SolidBrush(Color.White), 0, 0, 200, 60);
Font font = new Font(FontFamily.GenericSerif, 48, FontStyle.Bold, GraphicsUnit.Pixel);
Random r = new Random();
string letters = "ABCDEFGHIJKLMNPQRSTUVWXYZ0123456789";
StringBuilder sb = new StringBuilder();
//新增隨機的五個字母
for (int x = 0; x < 5; x++)
{
string letter = letters.Substring(r.Next(0, letters.Length - 1), 1);
sb.Append(letter);
graph.DrawString(letter, font, new SolidBrush(Color.Black), x * 38, r.Next(0, 15));
}
code = sb.ToString();
//混淆背景
Pen linePen = new Pen(new SolidBrush(Color.Black), 2);
for (int x = 0; x < 6; x++)
graph.DrawLine(linePen, new Point(r.Next(0, 199), r.Next(0, 59)), new Point(r.Next(0, 199), r.Next(0, 59)));
return bitmap;
}
}
使用
public ActionResult VerifyCode()
{
string code = "";
Bitmap bitmap = VerifyCodeHelper.CreateVerifyCode(out code);
base.HttpContext.Session.SetString("CheckCode", code);
MemoryStream stream = new MemoryStream();
bitmap.Save(stream, ImageFormat.Gif);
return File(stream.ToArray(), "image/gif");
}
相關文章
- asp.net core3.1 實戰開發(授權,鑑權封裝詳解)ASP.NET封裝
- asp.net core3.1 實戰開發(中介軟體的詳解)ASP.NET
- 直播軟體app開發,flutter 驗證碼輸入框的簡單封裝APPFlutter封裝
- 自用驗證類封裝封裝
- 探索Django驗證碼功能的實現 - DjangoStarter專案模板裡的封裝Django封裝
- Flutter 驗證碼倒數計時Widget封裝Flutter封裝
- (精華2020年6月24日更新)asp.net core3.1實戰篇 RabbitMQ的使用一(安裝Erlang)ASP.NETMQ
- 短視訊平臺原始碼,取驗證碼 封裝全部封裝好直接呼叫原始碼封裝
- ASP.NET MVC中使用FluentValidation驗證實體ASP.NETMVC
- SpringCloud微服務實戰——搭建企業級開發框架(二十四):整合行為驗證碼和圖片驗證碼實現登入功能SpringGCCloud微服務框架
- 從0到1使用VUE-CLI3開發實戰(四): Axios封裝VueiOS封裝
- uniapp實戰——封裝商品列表元件並使用APP封裝元件
- 直播app系統原始碼,flutter 驗證碼輸入框的簡單封裝APP原始碼Flutter封裝
- Go專案實戰之驗證碼的生成和使用(易擴充套件方式)【goshop開源專案 | 20220516更新】Go套件
- 基於 CNN 的驗證碼破解實戰專案CNN
- 「Vue實戰」武裝你的專案 - 開發經驗分享Vue
- Node教程——封裝一個token驗證器封裝
- 【ASP.NET Core】使用最熟悉的Session驗證方案ASP.NETSession
- 【RAG 專案實戰 05】重構:封裝程式碼封裝
- JavaScript驗證碼生成和驗證效果JavaScript
- (精華2020年6月24日更新)asp.net core3.1實戰篇 RabbitMQ的使用二(環境搭建和初步使用)ASP.NETMQ
- Android元件化開發實戰:封裝許可權管理請求框架Android元件化封裝框架
- flask專案1實戰:2.2 flask框架下使用圖片驗證碼Flask框架
- [Hei.Captcha] Asp.Net Core 跨平臺驗證碼實現APTASP.NET
- 模板化的封裝,降低業務程式碼開發封裝
- Java驗證碼—ValidateCode的使用Java
- Laravel 介面開發中的驗證碼註冊Laravel
- 驗證碼機制之驗證碼重複使用
- 用go封裝和實現掃碼登入Go封裝
- 爬蟲驗證碼的幾種處理方式,已封裝成類,文章末尾有原始碼!爬蟲封裝原始碼
- 幾種開發時安全驗證的實現
- easy-captcha實現驗證碼驗證APT
- 實驗一軟體開發文件與工具的安裝與使用
- 使用.Net Core實現的一個圖形驗證碼
- 使用promise封裝jquery的ajax來實現async和await方式Promise封裝jQueryAI
- javascript設計模式與開發實踐(二)- 封裝和原型模式JavaScript設計模式封裝原型
- ASP.NET登入驗證ASP.NET
- 使用 Chapel 實現滑動驗證碼識別