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

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

這篇具有很好參考價(jià)值的文章主要介紹了ASP.NET Core 鑒權(quán)授權(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è)身份單元,存儲(chǔ)著鍵值信息

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

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

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

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

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

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(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 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)
  • .Net Core Jwt鑒權(quán)授權(quán)

    目錄 簡介 基于.Net Core 驗(yàn)證方式 Jwt獲取Token 引入三方包 生成Token UserInfo JwtConfig WebApi測試(獲取Token) Program.cs appsetting.json Controller .Net Core 驗(yàn)證(webApi) Progarm.cs Contorller .Net Core 授權(quán) 簡介 Program.cs JwtAuthorization.cs 注意 Autofac 注冊授權(quán)服務(wù) Controller 注意 jwt觸發(fā)委托 Jwt分為三段 通過遠(yuǎn)

    2024年02月13日
    瀏覽(53)
  • ASP.NET CORE WEBAPI 登錄 JWT 鑒權(quán) ,接口權(quán)限驗(yàn)證

    介紹 當(dāng)今Web開發(fā)中,API的使用越來越廣泛,而API的安全性也變得越來越重要。其中,JWT(JSON Web Token)鑒權(quán)和授權(quán)是一種常見的解決方案。 本篇文章將會(huì)介紹JWT鑒權(quán)和授權(quán)的原理、實(shí)現(xiàn)方式以及注意事項(xiàng)。 什么是JWT? JWT是一種基于JSON格式的開放標(biāo)準(zhǔn)(RFC7519),用于在網(wǎng)絡(luò)

    2023年04月21日
    瀏覽(87)
  • ASP.NET Core 授權(quán)一(簡單的Cookie)

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

    2024年02月04日
    瀏覽(26)
  • 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)
  • 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)目中,我們不僅僅會(huì)用到基礎(chǔ)的api功能,我們一般還會(huì)用到? 身份授權(quán)(J

    2024年02月02日
    瀏覽(29)
  • 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日
    瀏覽(38)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包