0

我正在开发一个.net webAPI 项目,我们正在使用依赖注入(我相信是StructureMap)来为我们的控制器提供每个会话数据访问对象的实例。这部分效果很好。

我现在需要做的是提供一个带有 DataAccessObject 的 AuthorizationFilterAttribute 实例。

AuthorizationFilterAttribute 通过注解使用。例如:

[ApiKeyAuthorization]
public DataModel ControllerAction(int id) { }

这将确保在控制器开始运行之前检查授权。

我需要的是参考我的每会话共享数据库访问对象来创建 ApiKeyAuthorization 对象。

有没有一种简单的方法可以做到这一点?

4

1 回答 1

5

关于对动作过滤器的依赖注入有几个类似的问题。这里有几个:

Ninject 和 MVC3:动作过滤器
的依赖注入 如何使用依赖注入和属性?
将依赖项注入 ASP.NET MVC 3 操作过滤器。这种方法有什么问题?

Jimmy Bogart 的博客文章(链接自答案之一): http: //lostechies.com/jimmybogard/2010/05/03/dependency-injection-in-asp-net-mvc-filters/

另一个基于 StructureMap 的解决方案:http ://www.thecodinghumanist.com/blog/archives/2011/1/27/structuremap-action-filters-and-dependency-injection-in-asp-net-mvc-3

允许基于构造函数的动作过滤器注入的有趣解决方案:http: //iridescence.no/post/Constructor-Injection-for-ASPNET-MVC-Action-Filters.aspx

希望它能带你走上正确的轨道。

于 2012-06-18T18:38:08.263 回答