使用Autofac注册HttpContext.User

CRG*_*CRG 3 asp.net-mvc autofac

我想在Autofac中执行以下操作,但不确定如何操作?

这是你在StructureMap中的方法

ForRequestedType<IPrincipal>()
  .CacheBy(InstanceScope.Hybrid)
  .TheDefault.Is.ConstructedBy(ctx => HttpContext.Current.User);
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 10

对于ASP.NET MVC 1和2:

builder.Register(c => HttpContext.Current.User).HttpRequestScoped();
Run Code Online (Sandbox Code Playgroud)

对于ASP.NET MVC 3:

builder.Register(c => HttpContext.Current.User).InstancePerHttpRequest();
Run Code Online (Sandbox Code Playgroud)

对于Autofac ASP.NET MVC3集成,您可以查看文档(更新的链接).

对于ASP.NET MVC 5:

builder.Register(c => HttpContext.Current.User).InstancePerRequest();
Run Code Online (Sandbox Code Playgroud)

  • 在MVC 5(可能是4)中更改为`InstancePerRequest()`。 (2认同)