在另一个stackoverflow问题MVC5 IoC and Authentication中,第一个答案指出作者使用依赖注入来注入IPrincipal。我想为我的汇编程序执行此操作,这样我就不必从控制器传递当前用户(IPrincipal)。
谁能举例说明如何使用DI在C#MVC5中注入IPrincipal?以下是我首先要实现的IoC。在给出第一个答案后添加。
public class ViewModelAssemblersInstaller : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(
Component.For<IAspNetUserAssembler>()
.ImplementedBy<AspNetUserAssembler>());
}
}
最佳答案
对于温莎城堡而言,它类似于:
container.Register(Component.For<IPrincipal>()
.LifeStyle.PerWebRequest
.UsingFactoryMethod(() => HttpContext.Current.User));