2011-03-05 108 views
3

我想在Autofac中做以下事情,但不知道如何?用Autofac註冊HttpContext.User

這是你如何做到這一點在StructureMap

ForRequestedType<IPrincipal>() 
    .CacheBy(InstanceScope.Hybrid) 
    .TheDefault.Is.ConstructedBy(ctx => HttpContext.Current.User); 

回答

10

對於ASP.NET MVC 1和2:

builder.Register(c => HttpContext.Current.User).HttpRequestScoped(); 

對於ASP.NET MVC 3:

builder.Register(c => HttpContext.Current.User).InstancePerHttpRequest(); 

對於Autofac ASP.NET MVC3集成你可能需要一個look at the documentation(更新鏈接)。

對於ASP.NET MVC 5:

builder.Register(c => HttpContext.Current.User).InstancePerRequest(); 
+0

是,是不是在這個職位的文檔的附加信息? – JJS 2014-02-10 18:09:25

+1

在MVC 5中更改爲'InstancePerRequest()'(可能爲4)。 – 2014-06-19 01:04:55