在我的 Web 应用程序中,我有各种组件需要访问当前经过身份验证的用户 (HttpContext.User)。
组件可以通过两种明显的方式访问它: 1) 从 HttpContext.Current 访问获取用户 2) 在构造函数中传递用户
- 并不理想,因为它使测试变得困难,并将应用程序组件与网络问题联系在一起,而实际上他们不应该知道它。
- 只是杂乱无章,让一切都变得复杂。
所以我一直在考虑使用 IoC 容器(通过依赖注入(inject))将当前用户(或者可能只是名称/ID)传递给任何需要它的组件。
是否有人使用此技术将当前 ASP.NET 用户提供给应用程序的某些部分?或者,这听起来像是一种明智的方法吗?我想知道这对人们来说效果如何。
谢谢
更新: 感谢 Raj 提供了一个很好的例子。如果有人有使用 AutoFac 的类似示例,将不胜感激!
更新 2:感谢您的回答,希望我能拆分接受!
最佳答案
在autofac中:
builder.Register(c => HttpContext.Current.User.Identity).HttpRequestScoped();
关于asp.net - 通过依赖注入(inject)传递 ASP.NET 用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2824649/