Asp.net mvc 4 Ninject依赖关系到AuthorizationAttribute MVC4 Web API RC

Asp.net mvc 4 Ninject依赖关系到AuthorizationAttribute MVC4 Web API RC,asp.net-mvc-4,ninject,asp.net-web-api,Asp.net Mvc 4,Ninject,Asp.net Web Api,我有一个自定义授权属性,仅对某些操作是必需的,它检查请求头中是否有自定义令牌。在数据库中检查令牌。检查数据库需要访问我希望通过构造函数注入的服务 我读到这篇文章的方法是(,和)使用一个无构造函数的过滤器并注入依赖的过滤器,如下所示: kernel.BindFilter(FilterScope.Controller,0).WhenControllerHas(); 但是,BindFilter方法对我不可用,因为我已经按照说明设置了Ninject。这是使用Ninject.Web.Common而不是

我有一个自定义授权属性,仅对某些操作是必需的,它检查请求头中是否有自定义令牌。在数据库中检查令牌。检查数据库需要访问我希望通过构造函数注入的服务

我读到这篇文章的方法是(,和)使用一个无构造函数的过滤器并注入依赖的过滤器,如下所示:

kernel.BindFilter(FilterScope.Controller,0).WhenControllerHas();
但是,BindFilter方法对我不可用,因为我已经按照说明设置了Ninject。这是使用Ninject.Web.Common而不是Ninject MVC3,因为我读到Ninject MVC3不能与MVC4 RC一起工作。除此之外,我还可以如何着手完成这项工作

我还读到,我可以添加到GlobalFilters.Filters,但我不希望它出现在每个动作中


提前感谢您的回答

我不完全确定您是如何设置应用程序的,但我的经验是,如果您想要为WebApi控制器设置过滤器,则需要将其添加到
HttpFilterCollection
中,该过滤器可从
GlobalConfiguration.Filters
获得。这是一组不同于MVC使用的过滤器(通过
GlobalFilterCollection
)。我不确定我是否遵循-在我的Global.asax中,没有称为过滤器的GlobalConfiguration属性。我可以访问GlobalFilters.Filters。或者GlobalConfiguration过滤器!然而,我本以为这对我在这种情况下没有帮助,因为我提到我不想将此筛选器应用于每个操作-仅适用于某些操作。有相同的问题,您是否解决过此问题?抱歉,我没有解决它!在auth属性的构造函数中,我向存储库提供了一个实例化。
kernel.BindFilter<MyAuthorizeFilter>(FilterScope.Controller, 0).WhenControllerHas<MyAuthorizeAttribute>();