Asp.net mvc 4 Ninject授权与操作筛选器绑定顺序

Asp.net mvc 4 Ninject授权与操作筛选器绑定顺序,asp.net-mvc-4,ninject,action-filter,authorize-attribute,custom-action-filter,Asp.net Mvc 4,Ninject,Action Filter,Authorize Attribute,Custom Action Filter,我尝试使用Ninject的BindFilter语法应用两个过滤器,它们正通过依赖项注入成功应用。问题在于,在检查维护授权时,该程序会对当前用户进行分类并在RequestScope中绑定该用户,并且必须在第二个用户之前运行,否则它不知道您指的是哪个用户 NinjectWebCommon.cs中的筛选器绑定如下所示: kernel.BindFilter<CurrentUserFilter>(FilterScope.Global, 0).InRequestScope(); kernel.B

我尝试使用Ninject的
BindFilter
语法应用两个过滤器,它们正通过依赖项注入成功应用。问题在于,在检查维护授权时,该程序会对当前用户进行分类并在RequestScope中绑定该用户,并且必须在第二个用户之前运行,否则它不知道您指的是哪个用户

NinjectWebCommon.cs
中的筛选器绑定如下所示:

kernel.BindFilter<CurrentUserFilter>(FilterScope.Global, 0).InRequestScope();
kernel.BindFilter<SetupRightsAttribute>(FilterScope.Controller, 1).WhenControllerType<MaintenanceController>().InRequestScope();
我希望先命中断点1,然后再命中断点2,但出于某种原因,它总是先命中断点2,因为此时它不知道用户,所以它告诉我我没有授权


我尝试了许多不同排列的过滤器范围和顺序设置,甚至以不同的顺序绑定它们,但没有任何效果…我做错了什么?

在操作过滤器之前执行授权过滤器,因为授权在MVC执行管道中比处理操作更早。

谢谢Remo,我会把它改成一个动作过滤器…或者类似的东西:-P
public class CurrentUserFilter : IActionFilter
{
    public void OnActionExecuting(ActionExecutingContext filterContext)
    // implementation - breakpoint 1
}

public class SetupRightsAttribute : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    // implementation - breakpoint 2
}