通过选择性StructureMap注入的IPrincipal与SignalR [英] Selective IPrincipal Injection via StructureMap with SignalR

查看:281
本文介绍了通过选择性StructureMap注入的IPrincipal与SignalR的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

StructureMap被配置成喷射 HttpContext.Current.User 的IPrincipal 请求任何ASP.NET MVC Web请求,就像这样:

StructureMap is configured to inject HttpContext.Current.User when an IPrincipal is requested for any ASP.NET MVC web request, like so:

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

但是,当我SignalR中心要求依赖于一个的IPrincipal ,注射服务失败,因为 HttpContext.Current 为空。相反,SignalR已具有通过公开电流的IPrincipal Context.User <α HubCallerContext 属性/ code>。

But when my SignalR hub asks for a service that depends on an IPrincipal, injection fails because HttpContext.Current is null. Instead, SignalR already has a HubCallerContext property that exposes the current IPrincipal via Context.User.

我如何配置StructureMap总是注入一个有效的的IPrincipal 进入我的SignalR枢纽依靠服务?

How do I configure StructureMap to always inject a valid IPrincipal into the services my SignalR hub relies on?

推荐答案

只要做到这一点:

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

这篇关于通过选择性StructureMap注入的IPrincipal与SignalR的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆