asp.net - 通过依赖注入(inject)传递 ASP.NET 用户

标签 asp.net dependency-injection inversion-of-control

在我的 Web 应用程序中,我有各种组件需要访问当前经过身份验证的用户 (HttpContext.User)。

组件可以通过两种明显的方式访问它: 1) 从 HttpContext.Current 访问获取用户 2) 在构造函数中传递用户

  1. 并不理想,因为它使测试变得困难,并将应用程序组件与网络问题联系在一起,而实际上他们不应该知道它。
  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/

相关文章:

javascript - 在另一个更新面板上使用 __doPostBack 时停止更新面板更新

dependency-injection - 对具有许多依赖项的类使用依赖注入(inject)框架

javascript - 是否有用于 javascript 的任何反转控制框架?

ios - ASP.NET MVC Web 应用程序中的 Bing map 在移动 View 中无法正确显示

asp.net - 使div在html中固定在一个点上

java - @StaticMetamodel 和 SingularAttribute<Obj,Obj> 是什么?

java - 我们应该将每个对象都暴露为 spring bean 吗?

assemblies - NInject 可以按需加载模块/程序集吗?

c# - 使用我的 IOC 容器的配置文件绑定(bind)覆盖代码内绑定(bind)

c# - 如何通过自定义打印窗口打印完整的 gridview 区域?