国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ASP.NET Core 授權(quán)二(自定義token)

這篇具有很好參考價(jià)值的文章主要介紹了ASP.NET Core 授權(quán)二(自定義token)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

TokenAuthenticationHandler.cs

首先自定義一個(gè)類TokenAuthenticationHandler,然后需要繼承IAuthenticationHandler接口
具體代碼:

public class TokenAuthenticationHandler : IAuthenticationHandler
{
    private AuthenticationScheme _scheme;
    private HttpContext _context;
    /// <summary>
    /// 鑒權(quán)初始化
    /// </summary>
    /// <param name="scheme">鑒權(quán)架構(gòu)名稱</param>
    /// <param name="context">HttpContext</param>
    /// <returns></returns>
    /// <exception cref="NotImplementedException"></exception>
    public Task InitializeAsync(AuthenticationScheme scheme, HttpContext context)
    {
        _scheme = scheme;
        _context = context;
        return Task.CompletedTask;
    }
    public Task<AuthenticateResult> AuthenticateAsync()
    {
        string token = _context.Request.Headers["Authorization"];
        if (token == "test")
        {
            ClaimsIdentity identity = new ClaimsIdentity("Ctm");
            identity.AddClaims(new List<Claim>(){
                new Claim(ClaimTypes.Name,"admin"),
                new Claim(ClaimTypes.NameIdentifier,"1")
            });
            var claimsPrincipal = new ClaimsPrincipal(identity);
            return Task.FromResult(AuthenticateResult.Success(new AuthenticationTicket(claimsPrincipal, null, _scheme.Name)));
        }
        return Task.FromResult(AuthenticateResult.Fail("token錯(cuò)誤,請重新登錄"));
    }

    /// <summary>
    /// 未登錄
    /// </summary>
    /// <param name="properties"></param>
    /// <returns></returns>
    /// <exception cref="NotImplementedException"></exception>
    public Task ChallengeAsync(AuthenticationProperties? properties)
    {
        _context.Response.Redirect("/api/Login/NoLogin");
        return Task.CompletedTask;
    }

    /// <summary>
    /// 沒有權(quán)限訪問
    /// </summary>
    /// <param name="properties"></param>
    /// <returns></returns>
    /// <exception cref="NotImplementedException"></exception>
    public Task ForbidAsync(AuthenticationProperties? properties)
    {
        _context.Response.StatusCode = 403;
        return Task.CompletedTask;
    }
}

Program.cs

#region  自定義Token驗(yàn)證
builder.Services.AddAuthentication(option => 
{
    //把自定義的鑒權(quán)方案添加到鑒權(quán)架構(gòu)中
    option.AddScheme<TokenAuthenticationHandler>("token","myToken");
    option.DefaultAuthenticateScheme = "token";
    option.DefaultChallengeScheme = "token";
    option.DefaultForbidScheme = "token";
});
#endregion

請求

后續(xù)需要鑒權(quán)的接口,在請求上都需要加上Authorization參數(shù)

重要類型

Claim:相當(dāng)于一個(gè)身份單元,存儲著鍵值信息

ClaimsIdentity:身份證,身份單元的集合(可以理解為身份證上有多個(gè)身份單元)

ClaimsPrincipal:身份證的載體,一個(gè)人有多重身份,那么會有多個(gè)身份證,比如既有身份證又有學(xué)生證

AuthenticateResult:認(rèn)證結(jié)果

AuthenticationTicket:表示一個(gè)經(jīng)過認(rèn)證后頒發(fā)的證書文章來源地址http://www.zghlxwxcb.cn/news/detail-772113.html

到了這里,關(guān)于ASP.NET Core 授權(quán)二(自定義token)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ASP.NET Core Web API之Token驗(yàn)證

    ASP.NET Core Web API之Token驗(yàn)證

    在實(shí)際開發(fā)中,我們經(jīng)常需要對外提供接口以便客戶獲取數(shù)據(jù),由于數(shù)據(jù)屬于私密信息,并不能隨意供其他人訪問,所以就需要驗(yàn)證客戶身份。那么如何才能驗(yàn)證客戶的什么呢?今天以一個(gè)簡單的小例子,簡述ASP.NET Core Web API開發(fā)過程中,常用的一種JWT身份驗(yàn)證方式。僅供學(xué)

    2024年02月11日
    瀏覽(22)
  • ASP.NET Core 鑒權(quán)授權(quán)一(簡單的Cookie)

    簡單的理解:鑒權(quán)衡量你能不能進(jìn)一道門,授權(quán)是你進(jìn)門了可以干什么

    2024年02月03日
    瀏覽(21)
  • C# ASP.NET Core Web API 身份授權(quán)(JWT)驗(yàn)證(一)

    C# ASP.NET Core Web API 身份授權(quán)(JWT)驗(yàn)證(一)

    1.開發(fā)環(huán)境 VS2022,安裝時(shí)記得勾選ASP.NET有關(guān)的都選上,建議全選,省的麻煩。 ???????? 2.創(chuàng)建初始工程 TestApi (你自己的工程名稱)。 ? ?這就創(chuàng)建工程成功了,按 F5 則可以進(jìn)行調(diào)試了。 而在項(xiàng)目中,我們不僅僅會用到基礎(chǔ)的api功能,我們一般還會用到? 身份授權(quán)(J

    2024年02月02日
    瀏覽(29)
  • ASP.NET Core MVC 從入門到精通之鑒權(quán)授權(quán)基礎(chǔ)

    ASP.NET Core MVC 從入門到精通之鑒權(quán)授權(quán)基礎(chǔ)

    隨著技術(shù)的發(fā)展,ASP.NET Core MVC也推出了好長時(shí)間,經(jīng)過不斷的版本更新迭代,已經(jīng)越來越完善,本系列文章主要講解ASP.NET Core MVC開發(fā)B/S系統(tǒng)過程中所涉及到的相關(guān)內(nèi)容,適用于初學(xué)者,在校畢業(yè)生,或其他想從事ASP.NET Core MVC 系統(tǒng)開發(fā)的人員。 經(jīng)過前幾篇文章的講解,初步

    2024年02月08日
    瀏覽(17)
  • ASP.NET Core高級之認(rèn)證與授權(quán)(二)--JWT認(rèn)證前后端完整實(shí)現(xiàn)

    ASP.NET Core高級之認(rèn)證與授權(quán)(二)--JWT認(rèn)證前后端完整實(shí)現(xiàn)

    了解JWT身份認(rèn)證的流程 了解基于JWT身份認(rèn)證和Session身份認(rèn)證的區(qū)別 學(xué)習(xí)如何在ASP.NET Core WebAPI項(xiàng)目中封裝JWT認(rèn)證功能 在上文ASP.NET Core高級之認(rèn)證與授權(quán)(一)–JWT入門-頒發(fā)、驗(yàn)證令牌中演示了JWT認(rèn)證的一個(gè)入門案例,本文是一個(gè)基于JWT認(rèn)證的完整的前后端實(shí)現(xiàn)代碼案例。 JWT身

    2024年02月01日
    瀏覽(23)
  • asp.net core 一種基于token 和 Permission 的權(quán)限管理中間件示例

    asp.net core 一種基于token 和 Permission 的權(quán)限管理中間件示例

    asp.net core webapi 下面,想做一個(gè)過濾權(quán)限的Filter,配合token,對api做一個(gè)較為細(xì)粒度的權(quán)限控制, 該filter (PermissionFilter) 的作用是用戶LoginUser.Permissions 列表中有 Key指定的權(quán)限才可以訪問,沒有則返回403 錯(cuò)誤碼。 ? 1. 先上封裝后的使用效果 說明:要求登錄即可,不要求特定權(quán)限

    2024年02月05日
    瀏覽(22)
  • asp.net core 一種基于token 和 Permission 的權(quán)限管理Filter 過濾器

    asp.net core 一種基于token 和 Permission 的權(quán)限管理Filter 過濾器

    asp.net core webapi 下面,想做一個(gè)過濾權(quán)限的Filter,配合token,對api做一個(gè)較為細(xì)粒度的權(quán)限控制, 該filter (PermissionFilter) 的作用是用戶LoginUser.Permissions 列表中有 Key指定的權(quán)限才可以訪問,沒有則返回403 錯(cuò)誤碼。 ? 1. 先上封裝后的使用效果 說明:要求登錄即可,不要求特定權(quán)限

    2024年02月08日
    瀏覽(39)
  • ASP.NET Core Web API下基于Keycloak的多租戶用戶授權(quán)的實(shí)現(xiàn)

    ASP.NET Core Web API下基于Keycloak的多租戶用戶授權(quán)的實(shí)現(xiàn)

    在上文《Keycloak中授權(quán)的實(shí)現(xiàn)》中,以一個(gè)實(shí)際案例介紹了Keycloak中用戶授權(quán)的設(shè)置方法?,F(xiàn)在回顧一下這個(gè)案例: 服務(wù)供應(yīng)商(Service Provider)發(fā)布/WeatherForecast API供外部訪問 在企業(yè)應(yīng)用(Client)里有三個(gè)用戶:super,daxnet,nobody 在企業(yè)應(yīng)用里有兩個(gè)用戶組:administrators,u

    2024年04月22日
    瀏覽(39)
  • 【asp.net core】自定義模型綁定及其驗(yàn)證

    水此篇博客,依舊是來自群里的討論,最后說到了,在方法參數(shù)自定義了一個(gè)特性,用來綁定模型,優(yōu)先從Form取,如果為空,或者不存在,在從QueryString中獲取并且綁定,然后閑著無聊,就水一篇博客,如果大家有什么需求或者問題,可以找我,很高興能為你們帶來幫助。

    2024年02月03日
    瀏覽(28)
  • 【ASP.NET Core 基礎(chǔ)知識】--中間件--創(chuàng)建自定義中間件

    一、為什么需要自定義中間件 自定義中間件在ASP.NET Core中的應(yīng)用主要有以下幾個(gè)原因: 滿足特定需求: 默認(rèn)情況下,ASP.NET Core提供了許多內(nèi)置的中間件來處理常見的任務(wù),如身份驗(yàn)證、授權(quán)、靜態(tài)文件服務(wù)等。然而,某些項(xiàng)目可能有特定的需求,需要定制化的處理流程,這

    2024年01月17日
    瀏覽(100)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包