将全局AuthorizeAttribute与操作属性组合在一起

时间:2014-11-07 14:08:47

标签: asp.net-mvc attributes authorization

我有一个自定义属性来授权继承AuthorizeAttribute的用户。我在启动时在全局过滤器中注册了该属性,并且按预期工作。但是在某些操作中,我想将设置参数传递给属性。

当仅在单独装饰每个控制器/操作时使用全局过滤器时,似乎无法使其工作。这是设计的吗?

public class AuthorizationActionFilter : AuthorizeAttribute
{
    public bool RequireAdministrator { get; set; }
    public bool RequireSystemUser { get; set; }
}

[AuthorizationActionFilter(RequireSystemUser = true)]
public class SiteInformationController : Controller
{
}

仅当未将AuthorizeActionFilter添加到全局过滤器时,属性中的RequireSystemUser属性才为true。有没有办法组合全局过滤器和控制器/操作特定声明?

1 个答案:

答案 0 :(得分:0)

您可以使用在mvc 5.0和properly works from 5.1中引入的OverrideAuthorization属性:

[OverrideAuthorization]
[AuthorizationActionFilter(RequireSystemUser = true)]
public class SiteInformationController : Controller
{
}