2

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

我读到这篇文章的方法可以做到(hereherehere)是通过一个没有构造函数的过滤器并像这样注入依赖的过滤器:

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

但是,我无法使用 BindFilter 方法,因为我已经按照此处所述设置了 Ninject 。这是使用Ninject.Web.Common而不是Ninject MVC3,因为我读到 Ninject MVC3 不适用于 MVC4 RC。我还能怎么做呢?

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

提前感谢您的任何答案。

4

1 回答 1

1

我不完全确定我看到你是如何设置你的应用程序的,但我的经验是,如果你想要一个WebApi控制器的过滤器,你需要将它添加HttpFilterCollectionGlobalConfiguration.Filters. 这是一组不同于MVC 使用的过滤器(通过GlobalFilterCollection)。

于 2012-08-30T21:23:49.317 回答