我有一个自定义属性来授权继承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。有没有办法组合全局过滤器和控制器/操作特定声明?
答案 0 :(得分:0)
您可以使用在mvc 5.0和properly works from 5.1中引入的OverrideAuthorization属性:
[OverrideAuthorization]
[AuthorizationActionFilter(RequireSystemUser = true)]
public class SiteInformationController : Controller
{
}