【问题标题】:Combine global AuthorizeAttribute with action attributes将全局 AuthorizeAttribute 与操作属性结合起来
【发布时间】:2015-01-04 08:31:24
【问题描述】:

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

只有在单独装饰每个控制器/动作时才使用全局过滤器,我似乎无法让它工作。是这样设计的吗?

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

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

属性中的RequireSystemUser 属性只有在没有将AuthorizeActionFilter 添加到全局过滤器时才为真。有没有办法结合全局过滤器和控制器/动作特定的声明?

【问题讨论】:

    标签: asp.net-mvc attributes authorization


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢!这正是我想要的
    猜你喜欢
    • 2021-08-21
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 2017-10-23
    • 2015-03-15
    相关资源
    最近更新 更多