如何将特定角色添加到对控制器具有全局授权的操作

how to add specific role to an action that has a global authorization on controller

我的控制器具有特定角色的授权。

[Authorize(Roles = "admin")]
public class PanelController : Controller
{

}

现在我希望角色用户也可以访问我的操作 但是当我这样做时我不工作

[Authorize(Roles = "admin")]
public class PanelController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    [Authorize(Roles = "admin,user")]
    public ActionResult MyAction()
    {
        return View();
    }
}

在 MyAction 方法中,具有用户角色的用户无权访问。 我使用 asp.net mvc5 和身份 2。 如果有人能帮助我,我会很高兴。

授权属性应用于控制器和操作时的效果是 AND 角色。因此,在这种情况下,您的 User 角色将不起作用,因为您的 Controller 属性将使正在执行的 AND 操作无效。

您可以在控制器上使用 User 角色,并将 Admin 角色应用于所有其他操作。如果您的管理员已分配给他们用户角色,这将有效。