Asp.net mvc MVC4和Ninject:如何将客户端的用户ID添加到注入的类中?
我正在使用Ninject 3.0将服务层数据访问类注入到我的控制器中。我想在运行时将客户端的域用户ID添加到这些类中,但无法确定应该使用什么方法。目前,我的NinjectModule看起来像这样:Asp.net mvc MVC4和Ninject:如何将客户端的用户ID添加到注入的类中?,asp.net-mvc,ninject,asp.net-mvc-4,Asp.net Mvc,Ninject,Asp.net Mvc 4,我正在使用Ninject 3.0将服务层数据访问类注入到我的控制器中。我想在运行时将客户端的域用户ID添加到这些类中,但无法确定应该使用什么方法。目前,我的NinjectModule看起来像这样: public class NinjectBindModule : NinjectModule { public override void Load() { Bind<ISomeRepo>().To<SomeRepo>(); } } 我
public class NinjectBindModule : NinjectModule
{
public override void Load()
{
Bind<ISomeRepo>().To<SomeRepo>();
}
}
我的问题分为两个部分:
我应该使用WithConstructorArgument将用户ID放入某个repo或其他属性吗?。我甚至可以在bind模块中执行此操作,还是必须在内核或控制器级别执行此操作?
我应该使用什么方法检索客户端的域用户ID?我认为我不能在内核级或绑定模块中使用,可以吗?
清晰而完美。谢谢清晰而完美。谢谢
public class NinjectBindModule : NinjectModule
{
public override void Load()
{
Bind<ISomeRepo>().To<SomeRepo>();
Bind<IPrincipal>()
.ToMethod(ctx => HttpContext.Current.User)
.InRequestScope();
}
}
public class SomeRepo : ISomeRepo
{
private readonly IPrincipal _principal;
public SomeRepo(IPrincipal principal)
{
_principal = principal;
}
... some methods that will have access to the principal
}