Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc MVC4和Ninject:如何将客户端的用户ID添加到注入的类中?_Asp.net Mvc_Ninject_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc MVC4和Ninject:如何将客户端的用户ID添加到注入的类中?

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>(); } } 我

我正在使用Ninject 3.0将服务层数据访问类注入到我的控制器中。我想在运行时将客户端的域用户ID添加到这些类中,但无法确定应该使用什么方法。目前,我的NinjectModule看起来像这样:

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
}