在另一个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));

09-11 05:19