【问题标题】:How to get IOwinContext from SignalR hub?如何从 SignalR 集线器获取 IOwinContext?
【发布时间】:2016-08-09 02:13:41
【问题描述】:

如何从 SignalR hub 访问IOwinContext(例如从HubCallerContext)?

【问题讨论】:

    标签: c# .net signalr owin signalr-hub


    【解决方案1】:

    如果您在 IIS 上,则可以通过 HubCallerContext(Hub 基类的 Context 属性)访问当前连接的客户端的 IOwinContext:

    using Microsoft.AspNet.SignalR;
    using System.Web;
    
    ...
    
    Context.Request.GetHttpContext().GetOwinContext()
    

    Microsoft.AspNet.SignalR 下的GetHttpContext is an extension 和 System.Web 下的GetOwinContext is an extension,因此请确保导入这两个命名空间包含 Microsoft.Owin.Host.SystemWeb程序集作为项目参考

    【讨论】:

    • @TN。我不确定你是什么意思?它应该可以在从 Hub 基类继承的集线器中的任何非静态方法/属性中访问。
    • Owin 是一个抽象层,可以托管在各种环境(IIS、自托管等)中。当你写System.Web时,看起来它只是用于IIS托管,它在其他环境中不起作用。
    • GetHttpContext() 不可用
    • @UjjwalKumarGupta 你确定通过using Microsoft.AspNet.SignalR; 导入 SignalR 命名空间吗?
    • 是的,但是Context.request中没有GetHttpContext()
    猜你喜欢
    • 2015-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-27
    相关资源
    最近更新 更多