带参数的.Net MVC全局过滤器不起作用

时间:2011-09-20 17:11:02

标签: .net asp.net asp.net-mvc asp.net-mvc-3

我有一个自定义授权实现,它在构造函数中接收不需要授权的控制器的名称:

public class ValidatePermissionAttribute : AuthorizeAttribute
{
    ...

    public ValidatePermissionAttribute(params string[] optionalControllers)
    {
        this._optionalControllers = optionalControllers;
    }

    ...
}

在我的global.asax中:

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new ValidatePermissionAttribute("Login", "Error"));
}

问题是,在RegisterGlobalFilters中调试我的应用时,我在过滤器中看到了参数。但是当请求Action时,参数是string[0]

1 个答案:

答案 0 :(得分:2)

ASP.NET MVC 3中的条件筛选器是可行的方法。 http://haacked.com/archive/2011/04/25/conditional-filters.aspx