欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用.Net?Core實現的一個圖形驗證碼功能

 更新時間:2021年12月16日 10:33:40   作者:1992w  
SimpleCaptcha是一個使用簡單,基于.Net Standard 2.0的圖形驗證碼模塊。這篇文章主要介紹了使用.Net?Core實現的一個圖形驗證碼功能,需要的朋友可以參考下

SimpleCaptcha是一個使用簡單,基于.Net Standard 2.0的圖形驗證碼模塊。它的靈感來源于Edi.Wang的這篇文章https://edi.wang/post/2018/10/13/generate-captcha-code-aspnet-core,我將其中生成驗證碼的代碼抽取出來進行封裝得到了這個模塊。下面介紹一下使用方式。

基本使用方式

安裝SimpleCaptcha

在Nuget中搜索安裝SimpleCaptcha

安裝緩存模塊

SimpleCaptcha依賴Microsoft.Extensions.Caching.Abstractions模塊用來存儲驗證碼,所以你需要在項目中根據自己的需要安裝相應的實現包,例如這里我使用Microsoft.Extensions.Caching.Memory

Startup

修改Startup.cs文件注入相應的服務:

services.AddMemoryCache()
    .AddSimpleCaptcha(builder =>
    {
        builder.UseMemoryStore();
    });

注入ICaptcha接口

在Controller中注入核心接口ICaptcha

private readonly ICaptcha _captcha;

public HomeController(ICaptcha captcha)
{
    _captcha = captcha;
}

生成驗證碼

使用ICaptcha接口的Generate方法生成驗證碼

public IActionResult Captcha(string id)
{
    var info = _captcha.Generate(id);
    var stream = new MemoryStream(info.CaptchaByteData);
    return File(stream, "image/png");
}

驗證

使用ICaptcha接口的Validate方法對用戶的提交進行驗證

public IActionResult Validate(string id, string code)
{
    var result = _captcha.Validate(id, code);
    return Json(new { success = result });
}

完整的例子可以在這里找到:https://github.com/1992w/SimpleCaptcha/tree/master/src/SimpleCaptcha.Demo

配置

SimpleCaptcha預留了一些默認的配置項,你可以根據需要自行修改。

設置驗證碼長度

services.AddSimpleCaptcha(builder =>
{
    builder.AddConfiguration(options =>
    {
        options.CodeLength = 6;
    });
});

設置圖片大小

services.AddSimpleCaptcha(builder =>
{
    builder.AddConfiguration(options =>
    {
        options.ImageWidth = 100;
        options.ImageHeight = 36;
    });
});

設置區(qū)分大小寫

默認情況下驗證不區(qū)分大小寫

services.AddSimpleCaptcha(builder =>
{
    builder.AddConfiguration(options =>
    {
        options.IgnoreCase = false;
    });
});

設置驗證碼有效期

驗證碼默認的有效期為5分鐘

services.AddSimpleCaptcha(builder =>
{
    builder.AddConfiguration(options =>
    {
        options.ExpiryTime =TimeSpan.FromMinutes(10);
    });
});

設置字符集

SimpleCaptcha提供了ICaptchaCodeGenerator接口用來生成字符,默認的實現是從字符集012346789ABCDEFGHIJKLMNOPQRSTUVWXYZ中隨機生成,你可以繼承ICaptchaCodeGenerator接口實現自己的需求。

public class MyCaptchaCodeGenerator : ICaptchaCodeGenerator
{
    public string Generate(int length)
    {
        throw new NotImplementedException();
    }
}

配置自己的生成器

services.AddSimpleCaptcha(builder =>
{
    builder.AddConfiguration(options =>
    {
        options.CodeGenerator = new MyCaptchaCodeGenerator();
    });
});

設置個性化的圖片

如果默認生成的圖片你覺得不符合你的要求,你可以實現ICaptchaImageGenerator接口進行修改

public class CaptchaImageGenerator : ICaptchaImageGenerator
{
    public byte[] Generate(int width, int height, string captchaCode)
    {
        throw new NotImplementedException();
    }
}

services.AddSimpleCaptcha(builder =>
{
    builder.AddConfiguration(options =>
    {
        options.ImageGenerator = new CaptchaImageGenerator();
    });
});

源代碼

所有源代碼可以在這里獲?。?a rel="external nofollow" target="_blank">https://github.com/1992w/SimpleCaptcha

到此這篇關于使用.Net?Core實現的一個圖形驗證碼的文章就介紹到這了,更多相關.Net?Core圖形驗證碼內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • asp.net web頁面元素的多語言化(多國語化)實現分享

    asp.net web頁面元素的多語言化(多國語化)實現分享

    開發(fā)的一些系統(tǒng),經常要求支持多語言(例如日文,英文等),接下來介紹如何實現asp.net開發(fā)中web頁面實現頁面元素的多語言化(多國語化)感興趣的朋友可以了解下,或許對你學習有所幫助
    2013-02-02
  • .Net頁面局部更新引發(fā)的思考

    .Net頁面局部更新引發(fā)的思考

    這篇文章主要是由.Net頁面局部更新引發(fā)的一系列思考,整理了實現局部更新的解決方案及改進方案,感興趣的小伙伴們可以參考一下
    2016-06-06
  • .NET?Core利用?AsyncLocal?實現共享變量的代碼詳解

    .NET?Core利用?AsyncLocal?實現共享變量的代碼詳解

    在Web?應用程序中,我們經常會遇到這樣的場景,如用戶信息,租戶信息本次的請求過程中都是固定的,我們希望是這種信息在本次請求內,一次賦值,到處使用。本文就來探討一下,如何在.NET?Core?下去利用AsyncLocal?實現全局共享變量
    2022-04-04
  • asp.net Urlrewriter在虛擬主機上的使用方法

    asp.net Urlrewriter在虛擬主機上的使用方法

    在網上看到,很多朋友在asp.net中做urlrewrite,用的是HttpHandle Server.Transfer的方法。其實這種方法是錯誤的。
    2009-12-12
  • 十分鐘搞定多圖片/文件服務器

    十分鐘搞定多圖片/文件服務器

    圖片/文件服務器,顧名思義就是存文件唄,有的人用阿里云的現有服務,有的把文件Post到文件服務器,在文件服務器一端用一個應用程序來接收并保存,方法各不相同。下面跟著小編一起來看下吧
    2017-01-01
  • ASP.NET在上傳文件時對文件類型的高級判斷的代碼

    ASP.NET在上傳文件時對文件類型的高級判斷的代碼

    在上傳文件過程中,可以通過修改擴展名來逃過文件類型的判斷并實現上傳,就需要可以驗證究竟是什么文件。下面的代碼大家可以測試下。
    2009-12-12
  • AspNetPager分頁控件UrlRewritePattern參數設置的重寫代碼

    AspNetPager分頁控件UrlRewritePattern參數設置的重寫代碼

    AspNetPager分頁控件UrlRewritePattern參數設置的重寫代碼,需要的朋友可以參考一下
    2013-02-02
  • ASP.NET購物車實現過程詳解

    ASP.NET購物車實現過程詳解

    這篇文章主要為大家詳細介紹了ASP.NET購物車的實現過程,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-10-10
  • Asp.net中時間格式化的6種方法詳細總結

    Asp.net中時間格式化的6種方法詳細總結

    數據控件綁定時格式化日期方法/用DataBinder.Eval進行數據綁定時/直接用ToString方法轉換日期顯示格式/用String類轉換日期顯示格式等等,感興趣的你了解下哦,或許對你學習時間格式化有所幫助
    2013-02-02
  • asp.net下文件上傳和文件刪除的代碼

    asp.net下文件上傳和文件刪除的代碼

    asp.net下文件上傳和文件刪除的代碼...
    2007-09-09

最新評論