0

我目前正在草拟一个允许与网站访问者实时交互的应用程序。

因此,我有两种不同的“用户类型”:

  1. 未注册用户:这些是访客
  2. 注册用户:这些具有(自定义)ASP.NET MVC 成员资格

现在,我将“UserNames”和 ConnectionIds 保存在数据库中,以便将来可以自由扩展。我通过从集线器内访问 Context.Identiy.User.UserName 来做到这一点,然后在数据库中查询任何现有的“会话”。

这是问题所在:

  1. 我需要两种不同类型的“用户”
    1. 一方面,我想动态生成一个 GUID——这些是访问者,在一定数量的不活动后将从数据库中删除。
    2. 这些是管理员,他们的正确身份附加到 Context 对象。

那么,如何从 SignalR 访问“会话”呢?它不是真正的 Session,我只需要在对 MVC 控制器的每个初始请求中从 Cookie 中获取 SessionId,仅此而已。我需要做的就是:

  1. 有一个自动生成的“SessionId”,我可以用它来跨请求保留访问者
  2. 拥有更“扩展”的身份:我想使用 UserId 而不是 UserName

无论如何,我希望这是有道理的,但如果有任何不清楚的地方,请加入。

4

1 回答 1

0

好的,我刚刚意识到我可以使用“HttpContext.Current.Request.AnonymousId”并且我将它链接到一个会话数据库。

这里有一些相关文档:http: //msdn.microsoft.com/en-us/library/system.web.httprequest.anonymousid.aspx

这解决了我在这种情况下的问题。:-)

于 2013-08-27T14:00:20.530 回答