ASP.NET MVC5跟踪会话的最佳方式

时间:2015-01-09 09:12:10

标签: c# asp.net session asp.net-mvc-5 session-timeout

我目前正在使用ASP.NET MVC5创建一个网站,我需要跟踪活动会话(或者更正确,每个用户会话的单个值)

我环顾四周,人们似乎为此推荐了Session_end(),但所有这些建议都伴随着人们说session_end不可靠。

我需要跟踪这一点的原因是用户收到一个唯一的文件夹来上传文件。当用户完成该过程时,将删除此文件夹,但如果网站关闭而未完成,则该文件夹仍然存在 我目前将值保存在会话变量中(即使未登录,用户也应该获取文件夹)并且会话到期时丢失。会话过期后,应该删除该文件夹,因为没有用户可以再访问它(以节省存储空间)。

我可以访问数据库,以防有助于解决方案。

1 个答案:

答案 0 :(得分:1)

Session事件确实不可靠。根据经验,使用Session几乎不是一个好主意。

现在,如果我必须从头开始满足您的要求,我会选择能够主动监控Web应用程序上活动用户连接的内容。

幸运的是,有一个工具可以做到这一点以及更多:SignalR。它是一个ASP.NET组件,允许创建响应式应用程序,其中多个会话可以通过服务器相互通信。聊天,仪表板和网页游戏等应用程序是该库的常见应用程序。

我建议你看看它并进行一些实验,它有你解决当前问题所需的一切。