通过SignalR结构列表选择性iPrincipal注入



structureMap被配置为在要求任何ASP.NET MVC Web请求请求IPrincipal时注入HttpContext.Current.User,例如:

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

但是,当我的SignalR Hub要求提供取决于IPrincipal的服务时,注射会失败,因为HttpContext.Current为null。相反,SignalR已经具有HubCallerContext属性,该属性通过Context.User暴露了当前的IPrincipal

如何配置structuremap以始终将有效的IPrincipal注入我的SignalR Hub依赖的服务?

只要这样做:

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

相关内容

  • 没有找到相关文章