我有一个使用VS 2013,MVC 5和EF 6构建的活跃网站。这是用于医院。我们遇到的一个问题是,用户有时会在输入数据时被叫走,而不会保存当前条目。当他们返回时,会话已过期,并且他们丢失了任何未保存的数据。暂且不讨论用户应该做什么,我想要做的是在会话即将到期时在服务器(首选)或客户端上进行检测,以便采取补救措施。 (我知道如何做这部分。)
扩展会话超时不是解决方案,因为它不会检测用户忘记注销或刚刚关闭浏览器的情况。
有很多处理会话超时的例子;我找不到的是如何在这些潜在超时发生之前发现它们。
有没有解决这个问题的例子?
答案 0 :(得分:1)
执行此操作的简单方法是使用javascript在客户端上设置计时器,将计时器设置为小于会话值,并执行计时器滴答时所需的任何操作。您还需要在任何也会重置会话的操作上重置计时器。
var timeout;
var timeouttime = value in miliseconds
functionStart(){call this on initial page load
timeout = setTimeout("Function()", timeouttime}
function{"Function()"{do what ever before the sessions expire}
你可以在服务器端做类似的事情,但我在asp.net中一直遇到计时器服务器端的问题,所以上面是我经常使用的。
答案 1 :(得分:0)
我建议你: