2012-07-25 68 views
2

我想跟踪并列出登录到我的网站的个人的所有活动会话。说我可以为此使用或扩展ASP.NET的SessionProvider是否正确?在ASP中跟踪和列出用户的所有会话SessionStateProvider

我的意图是为此编辑或增强现有的Azure表会话提供程序。哪些方法可靠(或不可靠)被调用来跟踪谁是活跃的,谁不活跃?

我应该一起忽略会话提供者并实现自己的逻辑吗?

+1

这里的人一定会厌倦听我这样说,但不要使用Azure Table Session Provider,它是一个示例,由于很好的理由而不被MS支持,它在生产环境中存在真正的问题。 http://stackoverflow.com/questions/3940891/asp-net-mvc-azure-error-accessing-the-data-store/3952346#3952346 – knightpfhor 2012-07-26 21:03:19

回答

0

你应该看看Azure Shared Cache(预览目前)或Azure CacheASP.NET会话状态。至于跟踪当前谁在线的会话 - 您可以使用DataCache来为每个页面请求(或Global.Session_Start)使用一些滑动到期和DataCacheTag

要查询哪些用户会话处于活动状态 - 可以使用GetObjectsByTag。对于标签本身 - 您可以使用用户标识。

+0

如果一个节点失败,我不需要一个后备存储,缓存是淹没在数据中,或者在会话本身到期之前发生缓存特定到期? – LamonteCristo 2012-07-27 01:11:04

+1

正如Silver指出的那样,建议将会话数据存储在缓存中。如果您担心单个缓存实例不足,可以使用多个实例。即使有一个实例崩溃,您的会话数据仍然安全。 – 2012-07-30 15:33:40