希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,码字辛苦,如果你吃了蛋觉得味道不错,希望点个赞,谢谢关注。

Role授权

  这是一种Asp.Net常用的传统的授权方法,当我们在生成Token的时候,配置的ClaimTypes.Role为Admin,而ValuesController.cs是一个普通user(如下图所示),我们看下是否能访问成功?

  

  我们把生成的Token通过JWT官网验证一下,发现多了一个"role":"admin"

  

  Postman结果如下图所示,结果肯定是没有权限的!可以简单粗暴的说这就是Role授权,基于一组角色来进行授权:

  

Claims授权

  相比Role授权,更推荐大家使用Claims授权,这是.NET Core更推荐的授权方式,是传统没有的新东西。

  首先,我们要在Starup.cs的ConfigureServices()方法中配置如下代码:

  

  其次,我们要在生成token的时候配置Claims,同时在被访问的Controller上面配置Policy="Admin",如下所示:

  

  我们把生成的Token通过JWT官网验证一下,发现多了一个"Admin":"true"

   

 以上权限针对的是整个Controller,如果你想对该控制器内部某个方法开放匿名授权,也没有问题,只要配置如下代码即可。

  

  至此Claims授权就完成了,简单粗暴,此文只是一个引子,如果想了解更深入的自定义授权方式,可以浏览下面的参考文献。

参考文献:

 Using Roles with the ASP.NET Core JWT middleware

 Claims-based authorization in ASP.NET Core

  

  

5.3Role和Claims授权「深入浅出ASP.NET Core系列」的更多相关文章

  1. 5.1基于JWT的认证和授权「深入浅出ASP.NET Core系列」

    希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,码字辛苦,如果你吃了蛋觉得味道不错,希望点个赞,谢谢关注. Cookie-Based认证 认证流程 我们先看下传统Web端的认 ...

  2. 1.1专题介绍「深入浅出ASP.NET Core系列」

    大家好,我是IT人张飞洪,专注于.NET平台十年有余. 工作之余喜欢阅读和写作,学习的内容包括数据结构/算法.网络技术.Linux系统原理.数据库技术原理,设计模式.前沿架构.微服务.容器技术等等…… ...

  3. 目录导航「深入浅出ASP.NET Core系列」

    希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,谢谢关注. 入门篇 引子 1.1专题介绍 1.2环境安装 1.3创建项目 1.4部署到IIS 1.5准备CentOS和Ngin ...

  4. 1.4部署到IIS「深入浅出ASP.NET Core系列」

    希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,谢谢关注. 很多人第一次在IIS中部署Asp.Net Core App的人都会遇到问题,会发现原来的部署方式无法运行Asp.N ...

  5. 2.4配置的热更新「深入浅出ASP.NET Core系列」

    希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,谢谢关注. 大家知道通常我们修改网站的配置文件比如,webconfig的时候,网站需要重启才能读取到最新的修改,所谓热更新就是 ...

  6. 4.1ASP.NET Core请求过程「深入浅出ASP.NET Core系列」

    希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,谢谢关注. HTTP请求过程 这里展示整体的HTTP请求的过程,这里化繁为简,保留了主干流程: 从浏览器输入域名开始,这里忽略 ...

  7. 4.2WebHost配置「深入浅出ASP.NET Core系列」

    希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,谢谢关注. WebHost配置 覆盖配置文件和修改启动URL 覆盖配置文件和修改启动URL是经常使用的地方,覆盖配置文件可以自 ...

  8. 5.2基于JWT的令牌生成和定制「深入浅出ASP.NET Core系列」

    希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,码字辛苦,如果你吃了蛋觉得味道不错,希望点个赞,谢谢关注. Token生成 我们知道一旦我们给API添加[Authorize] ...

  9. 1.3创建项目「深入浅出ASP.NET Core系列」

    控制台创建项目 dotnet new --help 使用控制台采集项目,务必要熟练使用命令,--help是命令帮助的指明灯,在你无法google的时候,可以离线状态最快的帮助到你. 根据模板名称,我们 ...

随机推荐

  1. CentOS 6 安装HBase集群教程

    hbase0.99.2安装包下载(链接:https://pan.baidu.com/s/1dR-HB3P6mzsXVW6sLI8uxQ 密码:4g1n) 首先需要安装  zookeeper(点击查看) ...

  2. mysql在ubuntu中的操作笔记(详)

    1.安装mysql客户端流程: -  登录navicat官网下载 -  将压缩包拷贝ubuntu中进行解压,解压命令:tar zxvf navicat.tar.gz -  进入解压目录,运行命令./s ...

  3. eclipse springmvc+Thymeleaf

    修改pom.xml引入Thymeleaf相关包: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=& ...

  4. VMWare的网络

    1.VMWare的网络连接方式区别 连接方式 宿主机和虚拟机 虚拟机对外网的访问 外网对虚拟机的访问 Host-Only 可以相互访问 不能直接访问 不能直接访问 NAT 虚拟机可以访问宿主机 可以( ...

  5. 深入解读Resnet

    残差网络的设计目的 随着网络深度增加,会出现一种退化问题,也就是当网络变得越来越深的时候,训练的准确率会趋于平缓,但是训练误差会变大,这明显不是过拟合造成的,因为过拟合是指网络的训练误差会不断变小,但 ...

  6. CentOS 7安装Python3.6过程(让linux系统共存Python2和Python3环境)

    CentOS 7系统自带了python2,不过可以不用2版本,直接使用python3运行python脚本就可以,但是千万别去动系统自带的python2,因为有程序依赖目前的python2环境,比如yu ...

  7. vue2.0组件通信小总结

    1.父组件->子组件 父组件 <parent> <child :child-msg="msg"></child>//这里必须要用 - 代替 ...

  8. angularJS---自定义过滤器

    AngularJS另一个特点就是提供了过滤器,可以通过操作UNIX下管道的方式,操作数据结果. 通过使用管道,可以便于双向的数据绑定中视图的展现. 过滤器在处理过程中,将数据变成新的格式,而且可以使用 ...

  9. webcron

    一个定时任务管理器,基于Go语言和beego框架开发.用于统一管理项目中的定时任务,提供可视化配置界面.执行日志记录.邮件通知等功能,无需依赖*unix下的crontab服务. 项目背景 开发此项目是 ...

  10. consoleWriter.go

    package blog4go import ( "fmt" "os" "time" ) // ConsoleWriter is a con ...