【发布时间】:2011-09-01 21:09:42
【问题描述】:
在 ASP.Net MVC 2 应用程序中使用 Unity 我对正确实例化的控制器有各种依赖关系。但是,我想确保用户的当前 IPrincipal 将通过注入传递到较低级别的服务、存储库等。
因此,在较低级别的服务中,我有类似的东西:
[Dependency] IPrincipal CurrentUser {get; set;}
如果我使用属性依赖注入,我不会得到我想要的,因为控制器是在用户主体可用之前实例化的,并且在任何情况下 Unity 都不知道获取当前用户凭据。
所以我想要的是能够将当前用户的 IPrincipal(或者可能是 RolePrincipal)注入到 Controller 的依赖项之一中。
我该怎么做?
【问题讨论】:
-
感谢 mrjoltcola 和 mnemosyn 的回答。我同意 cmets 关于依赖注入的观点。我正在研究的想法是让它自动出现在服务和存储库中,这样每次开发人员要更新数据库时,控制器类中就不会有额外的代码。由于这与审计有关,我想确保运行时用户始终可用,并且开发人员不必记住通过它。
标签: asp.net-mvc dependency-injection unity-container