更改派生控制器中的授权角色

时间:2014-03-18 17:07:08

标签: c# asp.net-mvc-4 authorization

我在授权方面苦苦挣扎。我希望有BaseController定义CRUD操作,只有 Admin 才能访问。然后使用DerivedController,然后允许超级用户访问。

像这样:

public class BaseController : ApiController
{
    [Authorize(Roles = "Admin")]
    public void Foo() {...}
}

public class DerivedController : BaseController
{
    [Authorize(Roles = "SuperUser")]
    public void Foo() { base.Foo(); }
}

上面是一个简化版本,所以这个例子看起来有点奇怪:)。拥有[Authorize(Roles = "Admin, SuperUser")]的单个控制器不是一个选项。

然而,这不起作用。在尝试以{em>超级用户身份访问Derived.Foo时,我被拒绝访问。

这种方法不可能吗?

1 个答案:

答案 0 :(得分:0)

[Authorize(Roles = "Admin, SuperUser")]的工作方式是需要使用“Admin”或“SuperUser”。

但是,由于您现在有两个授权属性,因此现在要求“管理员”和“超级用户”。

授予您的超级用户管理员权限应该使您的解决方案成为可能。