与SignalR类(Hubs)共享静态类

时间:2016-11-29 17:46:53

标签: asp.net signalr

我正在创建一个包含登录表单的网站。当用户登录时,用户的信息被保存到HttpContext会话中,这是一个好主意。

现在我添加了一个signalR hub类(稍后我会添加多个),我知道我们无法访问HttpContext会话,所以我无法恢复用户的信息..

我想也许我可以自己处理会话,使用静态类。每个会话都有一个Id,我们可以从HttpContext会话和Hub Context中获取该Id。

  1. 来自HttpContext.Current.Session,它是SessionID
  2. 来自Hub类,它是Context.Request.Cookies [“ASP.NET_SessionId”]
  3. 现在的想法是,为表示数据的每个会话存储带有字典的会话。

    问题:

    静态类在用户登录并在网站上导航时效果很好,但是在Hub类(signalR服务器)中,静态类是空的。它就像是该类的一个新“实例”,这看起来很奇怪对我来说。

    备注

    我的所有课程都在App_Code中,甚至是Hub类。所有类都处于COMPILE模式,但Hub类(设置为COMPILE,服务器无法启动时)保持为CONTENT。

    任何人都可以向我澄清这个问题?也许我做错了什么,或者它的编译/内容破坏了这个想法。谢谢!

1 个答案:

答案 0 :(得分:0)

不知何故,从App_Code文件夹中移出Hub类修复了问题。现在我可以毫无问题地访问静态类。

相关问题