Ninject依赖于AuthorizationAttribute MVC4 Web API RC

时间:2012-08-30 14:22:11

标签: asp.net-mvc-4 ninject asp.net-web-api

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

我已经阅读过这种方式(hereherehere)是通过使用无构造函数的过滤器并按照以下方式注入从属过滤器:

kernel.BindFilter<MyAuthorizeFilter>(FilterScope.Controller, 0).WhenControllerHas<MyAuthorizeAttribute>();

然而,我没有使用BindFilter方法,因为我按照here所述设置了Ninject。这是使用 Ninject.Web.Common 而不是 Ninject MVC3 ,因为我读到Ninject MVC3不适用于MVC4 RC。我怎么能完成这个呢?

我还读过我可以添加到GlobalFilters.Filters - 但是我不希望它出现在每个动作上。

提前感谢您的回答。

1 个答案:

答案 0 :(得分:1)

我不完全确定我是如何设置您的应用程序的,但我的经验是,如果您想要一个 WebApi 控制器的过滤器,您需要将其添加到{{ 1}}可以从HttpFilterCollection获得。这是一个不同的过滤器集,而不是MVC使用的集合(通过GlobalConfiguration.Filters)。