微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以使用不同的角色覆盖asp.net核心的授权吗?

如何解决我可以使用不同的角色覆盖asp.net核心的授权吗?

[Authorize(Roles = "Admin")] // only admin
public class XController : Controller 
{
    [Authorize(Roles = "Employee")] // only employee
    public ActionResult ActionX() { ... }
}

只有管理员可以访问控制器,只有员工可以访问该方法,我知道这种结构不是最好的示例,但我只是想知道这是否可行! :)

解决方法

您绝对可以-但出于您的理智(和其他开发人员),我将Employee角色切换为Controller级别(最低允许),然后对您的角色进行更严格的授权逐个行动。

直接从MSDN docs开始。

您可以通过在操作级别应用其他角色授权属性来进一步限制访问权限:

[Authorize(Roles = "Administrator,PowerUser")]
public class ControlPanelController : Controller
{
    public ActionResult SetTime()
    {
    }

    [Authorize(Roles = "Administrator")]
    public ActionResult ShutDown()
    {
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。