通过StructureMap和SignalR选择性IPrincipal注射

时间:2012-10-26 09:52:12

标签: asp.net-mvc dependency-injection structuremap signalr iprincipal

StructureMap配置为在为任何ASP.NET MVC Web请求请求HttpContext.Current.User时注入IPrincipal,如下所示:

For<IPrincipal>().Use(x => HttpContext.Current.User);

但是当我的SignalR中心请求依赖于IPrincipal的服务时,注入失败,因为HttpContext.Current为空。相反,SignalR已经有一个HubCallerContext属性,可通过IPrincipal公开当前Context.User

如何配置StructureMap以始终将有效IPrincipal注入我的SignalR中心所依赖的服务?

1 个答案:

答案 0 :(得分:1)

这样做:

For<IPrincipal>().Use(x => Thread.CurrentPrincipal);