【发布时间】:2012-09-23 15:05:18
【问题描述】:
许多网站(例如银行网站)- 在会话即将到期之前实施注销 + 1 分钟警告。(20 分钟)
(这个话题讨论得不多——我看到的唯一问题是使用 asp.net 会员资格——我不使用它)
每个用户都有一个session["lastActionTime"]
此会话将在以下时间更新到当前时间:
- 页面已加载
- Ajax 请求已执行(由于用户操作)
现在 - 当页面加载时,我设置会话值。 (假设是 19:00)
此外,对于每个 ajax 请求(我的网站不创建回发 - 仅 ajax jquery) - 我使用带有 IRequiresSessionState 的 ASHX 处理程序,它将会话更新到当前时间。
我用这样的东西:
jQuery(document).ajaxStart(function(){
gotoHandlerAndUpdateSessionTime();
})
现在 - 警告消息前 1 分钟的部分(“您的会话即将到期”):
每个 ajax 返回事件或 page load 事件 - 我在 javascript 中激活:setInterval 和 [sessionTime-1] 分钟 (20-1=19)。 (当然 - 取消所有 prev setIntervals...)
现在当事件 (setInterval) 发生时 - 到期时间前 1 分钟:(19 分钟)
我显示一个警告 div ,用户可以选择 exit 或 stay 。
问题:
1) 如果用户没有在警告 div 上按任何内容,我将如何(在显示 div 1 分钟后)将他注销?我应该在显示 div 时打开 1 分钟的 setTimeout,然后(如果没有按下)将他注销吗?
2) 这是正确的做法吗?
3) 在这整个奇怪的故事中不应该有饼干吗? :-)
(请 - 没有会员资格 - 或表单身份验证)。 我也将这个问题标记为 PHP,因为我知道它也与 php 程序员有关,我想听听他们的知识。
【问题讨论】:
标签: c# php javascript jquery asp.net