5.3Role和Claims受權「深刻淺出ASP.NET Core系列」

但願給你3-5分鐘的碎片化學習,多是坐地鐵、等公交,聚沙成塔,水滴石穿,碼字辛苦,若是你吃了蛋以爲味道不錯,但願點個贊,謝謝關注。學習

Role受權

  這是一種Asp.Net經常使用的傳統的受權方法,當咱們在生成Token的時候,配置的ClaimTypes.Role爲Admin,而ValuesController.cs是一個普通user(以下圖所示),咱們看下是否能訪問成功?jwt

  

   咱們把生成的Token經過JWT官網驗證一下,發現多了一個"role":"admin"blog

  

 

  Postman結果以下圖所示,結果確定是沒有權限的!能夠簡單粗暴的說這就是Role受權,基於一組角色來進行受權:token

  

Claims受權

  相比Role受權,更推薦你們使用Claims受權,這是.NET Core更推薦的受權方式,是傳統沒有的新東西。get

  首先,咱們要在Starup.cs的ConfigureServices()方法中配置以下代碼:it

  

  其次,咱們要在生成token的時候配置Claims,同時在被訪問的Controller上面配置Policy="Admin",以下所示:io

  

  咱們把生成的Token經過JWT官網驗證一下,發現多了一個"Admin":"true"sed

    

  以上權限針對的是整個Controller,若是你想對該控制器內部某個方法開放匿名受權,也沒有問題,只要配置以下代碼便可。配置

  

  至此Claims受權就完成了,簡單粗暴,此文只是一個引子,若是想了解更深刻的自定義受權方式,能夠瀏覽下面的參考文獻。權限

參考文獻:

 Using Roles with the ASP.NET Core JWT middleware

 Claims-based authorization in ASP.NET Core

相關文章
相關標籤/搜索