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

相关文章
相关标签/搜索