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()
    {
    }
}

 

posted @ 2020-06-30 14:31  liessay  阅读(493)  评论(0编辑  收藏  举报