【发布时间】:2014-07-09 17:35:22
【问题描述】:
我制作了一个简单的 OWIN 中间件,它会为我获取一个 User 对象并将其添加到 HttpContext.Current.Items,以便每个请求的所有控制器和视图都可以使用它。
这是我的代码:
public class SetCurrentUserMiddleware : OwinMiddleware
{
public SetCurrentUserMiddleware(OwinMiddleware next) : base(next)
{
}
public override Task Invoke(IOwinContext context)
{
if (context.Request.User.Identity.IsAuthenticated)
{
// Do some work to get a userId... (omitted)
var repo = new UserRepository();
User user = repo.Get(userId);
HttpContext.Current.Items["CurrentUserContext"] = user;
}
return Next.Invoke(context);
}
}
我在我的 Web 应用程序中使用 Ninject - 我如何重构这个中间件,以便将我的 UserRepository 作为依赖项注入?这可能吗?
【问题讨论】:
-
您是否选择了任何实现。我也有这个问题
-
我希望我不是在做一个愚蠢的问题,但是您是否尝试将其绑定到您的 IoC/DI 容器中?
Bind<IContextManager>().To<ContextManager>();
标签: asp.net-mvc dependency-injection owin ninject