1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Asp.NET Core 中的 認(rèn)證授權(quán) 詳解和使用

        共 1251字,需瀏覽 3分鐘

         ·

        2024-04-10 20:59

        Asp.NET Core 中的 認(rèn)證授權(quán) 詳解和使用 - 醉馬踏千秋 - 博客園 https://www.cnblogs.com/abc1069/p/16058146.html


        什么是 驗(yàn)證 和 授權(quán)?

        身份驗(yàn)證(authentication):是確定用戶身份的過程

        授權(quán)(authorization ):是確定用戶(已經(jīng)驗(yàn)證成功的用戶)是否有權(quán)訪問資源的過程。

         

        身份驗(yàn)證

        職責(zé):

        • 對用戶進(jìn)行身份驗(yàn)證。

        • 在未經(jīng)身份驗(yàn)證的用戶試圖訪問受限資源時作出響應(yīng)。

        現(xiàn)在,我們對一個 action 方法上添加 authorize 特性,這表明我們對這個接口進(jìn)行了授權(quán): 

        [HttpGet]
        [Authorize]
        public IEnumerable Get(){
        return new string[] {"數(shù)據(jù)1", "數(shù)據(jù)2"};
        }

        如果我們直接訪問這個接口,會報如下錯誤:

        30fcea3dffb1090aa00f1cbe07cdbf8c.webp

        意思是:你定義了授權(quán),但沒有指定任何(包括自定義和官方的) 身份驗(yàn)證方案;

        授權(quán)Authorization 和 認(rèn)證Authentication 是相輔相成的;兩者缺一不可。

         

        解決的方法,其實(shí)報錯信息已經(jīng)告訴你了;即:添加認(rèn)證方案的支持,其實(shí),認(rèn)證方案有很多,但是現(xiàn)在主要推薦的還是 Jwt Bearer 身份驗(yàn)證方案:

        1、Nuget 中安裝 Microsoft.AspNetCore.Authentication.JwtBearer 包;

        2、然后再 ConfigurationServices 中添加對 身份驗(yàn)證的方案(包括使用什么方案,這個方案需要做什么樣子的配置) 做注入容器中處理:

        34893c22b3a16b91613ea1640a5244a6.webp

        提醒:根據(jù)報錯信息,他有兩種寫法,

        5e6f9bc590a2621ba7ed2cbb8beadbb4.webp

        下面是第二種:

        7feb7340a59c0dfc65d8403715065e09.webp

        401 Unauthorized:未經(jīng)授權(quán),身份認(rèn)證不通過,未認(rèn)證,可能:無令牌,令牌無效、失效(因?yàn)槟銢]有使用有效的token,無法通過 身份認(rèn)證 Authentication)

        403 Forbidden:被禁止,即:令牌通過,但是你無權(quán)限。


        授權(quán)

        上面例子中,我么用 authorize 這個特性作用于一個 action 方法上了,這就是授權(quán),對這個action進(jìn)行了權(quán)限限制;

        但是,這種簡單的授權(quán),是只要有效的token(即:身份驗(yàn)證通過),就能訪問這個接口,而沒有精細(xì)化處理(就好比:董事長有這權(quán)限、行政也有著權(quán)限、而員工沒有這權(quán)限);

        asp.net core 的授權(quán)分三種

        1、普通的授權(quán)(上面已經(jīng)講了)

        2、基于角色的授權(quán)

        3、基于策略的授權(quán)



        瀏覽 40
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            成人做爰A片免费播放金桔视频 | 爽好大快深一触手动漫 | 国产成人精品国内自产色情按摩 | 中文字字幕在线中文乱码修改方法 | 免费看黄 片 | 公交车乱理一级A片 | 一区二区无码电影 | 天天操夜 | 成人天天射视频 | 成人黄色免费看 |