返回顶部
关闭软件导航
位置:首页 > 资讯 > 其他>Authorize 属性通过声明的方式保护控制器或其部分方法

  [Authorize]publicclassCustomerController : Controller{ ...}

  如果未指定参数,此属性仅检查用户是否经过身份验证。不过ASPCMS批量上传内容 ,此属性支持 Roles 等其他属性。Roles 属性指明将对具有任一所列角色的用户授予访问权限。如果需要多个角色,可以多次应用 Authorize 属性,也可以编写自己的筛选器。

  [Authorize(Roles="admin, system"]publicclassBackofficeController : Controller{ ...}

  Authorize 属性还可以视需要通过 ActiveAuthenticationSchemes 属性ASPCMS批量助手,接受一个或多个身份验证方案。

  [Authorize(Roles="admin, system"ASPCMS批量更新文章, ActiveAuthenticationSchemes="Cookie"]publicclassBackofficeController : Controller{ ...}

  ActiveAuthenticationSchemes 属性是逗号分隔字符串,用于列出授权层将在当前上下文中信任的身份验证中间件组件。也就是说,它声明仅当用户通过 Cookie 方案进行身份验证并具有任一所列角色时,才允许访问 BackofficeController 类。如前所述,传递到 ActiveAuthenticationSchemes 属性的字符串值必须与应用程序启动时注册的身份验证中间件一致。

  请注意,在 ASP.NET 2.0 中ASPCMS批量添加产品,身份验证中间件被替换为包含多个处理程序的服务。因此,身份验证方案是选择处理程序的标签。

  若要详细了解 ASP.NET Core 中的身份验证,建议参阅我在 2017 年 9 月发表的专栏文章“ASP.NET Core 中的 Cookie、声明和身份验证”(msdn.com/magazine/mt842501)。

  授权筛选器

  系统提供的授权筛选器使用 Authorize 属性提供的信息。此筛选器先于其他任何 ASP.NET Core 筛选器运行,因为它负责检查用户能否执行请求的操作ASPCMS批量添加栏目。如果用户未经授权,筛选器会简化管道,并取消请求。

  可以创建自定义授权筛选器,但大部分情况下无需这样做。实际上,最好配置默认筛选器依赖的现有授权层。

  角色、权限和否决

  借助角色,可以根据用户能够执行或不能执行的操作,对应用程序用户轻松进行分组。不过,这种方法不是非常容易表达;至少,还不足以满足大部分新式应用程序的需求。

  例如,假设为相对简单的授权体系结构,可以服务于网站的普通用户,以及获得授权可访问后端办公系统软件并更新内容的 Power User。基于角色的授权层可以围绕两个角色(即用户和管理员)进行构建,这些角色定义了每组可以访问的控制器和方法。

  涉及否决方面的细微区别时,就会遇到问题,因为这些区别描述了具有给定角色的用户能够执行或不能执行的操作。

  例如,可能有用户喜欢访问后端办公系统。但在这些用户中,有的获得授权只能编辑客户数据,有的获得授权只能处理内容,还有的获得授权既能编辑客户数据,也能处理内容(见图 1)。

  图 1:角色层次结构

  角色实质上是一种平面概念。如何平展图 1 中所示的简单层次结构?可以创建四个不同的角色(即 User、Admin、CustomerAdmin 和 ContentsAdmin),但只要否决数量变多,所需的角色数量就会大大增加。即使像这样的简单练习,也表明角色可能并不是处理授权的最有效方法(优先考虑向后兼容性的简单方案和实例除外)。对于其他所有情况,要求则不同。下面开始介绍基于策略的授权。

如果您觉得 Authorize 属性通过声明的方式保护控制器或其部分方法 这篇文章对您有用,请分享给您的好友,谢谢
文章地址:https://www.tianxianmao.com/article/other/Authorizesxtgsmdfsbhkzqhqbfff.html
解放双手无尽可能,有问题添加天线猫微信