授权是来描述用户能够做什么的过程。例如,只允许管理员用户可以在电脑上进行软件的安装以及卸载。而非管理员用户只能使用软件而不能进行软件的安装以及卸载。它是独立的而又与验证配合使用,需要身份验证机制。对于应用程序来说,首先需要进行身份验证,然后进行进行授权。

作者:依乐祝
原文链接:https://www.cnblogs.com/yilezhu/p/9508267.html

Identity是一个会员资格系统,它允许我们将登录功能添加到我们的应用程序中,身份可能属于一个或多个角色。例如,“User1”属于“Admin”角色,“User2”属于“HR”的角色。
我们可以在我们的MVC或者Web API应用程序中的控制器上使用AuthorizeFilter特性来控制用户的访问。基于角色的授权可以检查登陆的用户是否有访问页面的权限。这里开发人员可以在他们的代码中加入角色。
下面我们使用一个例子来进行说明,我们将创建三个角色,对应的我们将建立三个用户。代码如下:

我们可以使用Authorize属性的Roles属性指定有权访问所请求资源的角色。例如,以下代码允许分配了“Admin”角色用户进行访问的操作方法。

我们可以使用英文的逗号分割的角色列表来允许多个角色访问的方法。例如,在以下代码段中,操作方法只能由“Admin”或“User”角色的用户访问。

我们也可以使用如下的代码来进行多角色的访问控制

基于策略的角色检查

我们还可以创建基于策略的访问控制。我们可以使用授权服务进行策略的添加以及注册。在下面的代码中,我们创建了一个只允许具有“Admin”角色的用户才能进行访问的策略。

我们可以使用Authorize 特性的“Policy ”属性进行策略的应用

使用这种策略方法我们也可以在Razor页面中应用基于角色的授权。例如,如果我们有一个"Test1.cshtml"的Razor页面,而且这个页面只允许具有"Admin"角色的用户访问,我们就可以使用下面的代码进行Razor页面的授权访问控制。

总结

本文是对https://www.c-sharpcorner.com/article/role-base-authorization-in-asp-net-core-2-1/ 这篇文章的翻译,讲述了ASP.NET Core 2.1中基于角色的授权,内容都很简单,浅显易懂!

原文地址: https://www.cnblogs.com/yilezhu/p/9508267.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

ASP.NET Core 2.1中基于角色的授权相关推荐

  1. ASP.NET Core 3.0中支持AI的生物识别安全

    本文共两个部分,这是第一部分,其中介绍了 ASP.NET Core 3 中旨在将授权逻辑与基本的用户角色相分离的基于策略的授权模型. 此部分提供了此授权进程的基于生物识别信息(如人脸识别或语音识别)的 ...

  2. ASP.NET Core 2.2中的Endpoint路由

    Endpoint路由 在ASP.NET Core 2.2中,新增了一种路由,叫做Endpoint(终结点)路由.本文将以往的路由系统称为传统路由. 本文通过源码的方式介绍传统路由和Endpoint路由 ...

  3. 在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务

    在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务 https://procodeguide.com/programming/polly-in-aspnet-core ...

  4. 将终结点图添加到你的ASP.NET Core应用程序中

    在本文中,我将展示如何使用DfaGraphWriter服务在ASP.NET Core 3.0应用程序中可视化你的终结点路由.上面文章我向您演示了如何生成一个有向图(如我上篇文章[译]使用DOT语言和G ...

  5. 一张大图了解ASP.NET Core 3.1 中的Authentication与Authorization

    下面是一张ASP.NET Core 3.1 中关于Authentication与Authorization的主流程框线图,点击这里查看全图:https://johnnyqian.net/images/ ...

  6. 避免在 ASP.NET Core 3.0 中为启动类注入服务

    本篇是如何升级到ASP.NET Core 3.0系列文章的第二篇. Part 1 - 将.NET Standard 2.0 类库转换为.NET Core 3.0 类库 Part 2 - IHostin ...

  7. ASP.NET Core Web API中使用Swagger

    本节导航 Swagger介绍 在ASP.NET CORE 中的使用swagger   在软件开发中,管理和测试API是一件重要而富有挑战性的工作.在我之前的文章<研发团队,请管好你的API文档& ...

  8. 使用Http-Repl工具测试ASP.NET Core 2.2中的Web Api项目

    今天,Visual Studio中没有内置工具来测试WEB API.使用浏览器,只能测试http GET请求.您需要使用Postman,SoapUI,Fiddler或Swagger等第三方工具来执行W ...

  9. ASP.Net Core 2.0中的Razor Page不是WebForm

    随着.net core2.0的发布,我们可以创建2.0的web应用了.2.0中新东西的出现,会让我们忘记老的东西,他就是Razor Page.下面的这篇博客将会介绍ASP.Net Core 2.0中的 ...

最新文章

  1. Windows不用虚拟机或双系统,轻松实现linux shell环境:gitforwindows
  2. asp.net core系列 47 Identity 自定义用户数据
  3. linux下git修改密码后无法使用,git push后账号密码输出错误和修改
  4. 计划用php写一个七牛文件上传小工具
  5. WPF 正確理解ContentPresenter
  6. spring 跨域 CORS (Cross Origin Resources Share) 跨域
  7. EF学习笔记-2 EF之支持复杂类型的实现
  8. moodle环境安装linux,Linux下安装Moodle
  9. laya ts fgui的list滚动列表设置
  10. COM组件和DLL的区别
  11. pci串口驱动安装失败_PCI转串口卡驱动安装问题
  12. 虚拟局域网软件开源_基于开源AUTOSAR的高级驾驶员辅助系统的设计与实现过程...
  13. html字体加粗怎么设置,css怎么设置字体加粗?
  14. Office中常见度量单位(转)
  15. linux系统修复home文件夹,在Linux操作系统上修复损坏的主分区/主目录
  16. ubuntu 黑体_Ubuntu 7.10 黑体解决方案
  17. jQuery.jqGrid
  18. 微信浏览器字体调整 PHP,微信h5禁止微信内置浏览器调整字体大小-爬坑
  19. 计算机专业考研集成电路,准备考研,“控制科学与工程”与“集成电路”,该怎么选?...
  20. python慕课笔记 Python语言程序设计 嵩天笔记整理

热门文章

  1. Python深入类和对象
  2. java对象实例化的方式
  3. 纯css实现漂亮又健壮的tooltip
  4. 【No.7 C++对象的构造与析构时间】
  5. DOM 事件深入浅出(二)
  6. Dapr牵手.NET学习笔记:开篇
  7. Magicodes.IE.AspNetCore之一行代码多格式导出
  8. 又一起.NET程序挂死, 用 Windbg 抽丝剥茧式的真实案例分析
  9. 使用 C# 9 的records作为强类型ID - JSON序列化
  10. 如何在 ASP.NET Core 中使用 ActionFilter