Identity基于角色的访问授权
详情访问官方文档
例如,以下代码将访问权限限制为属于角色成员的用户的任何操作 AdministrationController
Administrator
:
[Authorize(Roles = "Administrator")] public class AdministrationController : Controller { }
可以将多个角色指定为逗号分隔列表:
[Authorize(Roles = "HRManager,Finance")] public class SalaryController : Controller { }
此控制器仅可供作为角色或角色成员的用户访问 HRManager
Finance
。
如果应用多个属性,则访问用户必须是所有指定角色的成员;下面的示例要求用户必须是 PowerUser
和角色的成员 ControlPanelUser
。
[Authorize(Roles = "PowerUser")] [Authorize(Roles = "ControlPanelUser")] public class ControlPanelController : Controller { }
您可以通过在操作级别应用其他角色授权属性来进一步限制访问权限:
[Authorize(Roles = "Administrator, PowerUser")] public class ControlPanelController : Controller { public ActionResult SetTime() { } [Authorize(Roles = "Administrator")] public ActionResult ShutDown() { } }
在前面的代码片段中 Administrator
,角色或角色的成员 PowerUser
可以访问控制器和 SetTime
操作,但只有角色的成员 Administrator
才能访问该 ShutDown
操作。
你还可以锁定控制器,但允许对单个操作进行匿名、未经身份验证的访问。
[Authorize] public class ControlPanelController : Controller { public ActionResult SetTime() { } [AllowAnonymous] public ActionResult Login() { } }
本文来自博客园,作者:liessay,转载请注明原文链接:https://www.cnblogs.com/liessay/p/13213587.html