【发布时间】:2011-09-11 07:19:03
【问题描述】:
如何创建一个 jquery 脚本以在一段时间不活动后自动注销用户?或者有没有一个jQuery插件可以做到这一点?它需要执行以下操作:
- 使用 setTimeout 创建计时器(例如 30 分钟)
- 每次用户与页面交互时重置超时
- setTimeout到期后,使用ajax调用服务器上的/logout动作(asp.net mvc)
- 显示一个模态/灯箱对话框,告诉用户再次登录
【问题讨论】:
-
在服务器端管理它会不会更容易,然后一旦计时器到期,将它们重定向到带有模态/灯箱弹出窗口的页面?
-
同意。即使这样,您确定要在固定时间后手动注销它们吗?表单身份验证票的到期(滑动到期)不是用于此目的吗?
-
@tim 我不知道该怎么做的主要部分是 #2 在任何用户操作后将计时器重置为 30 分钟。我将如何简明扼要地检测到任何操作?
-
@rpm 是的,表单身份验证确实可以做到这一点。但是会发生什么情况,如果用户空闲然后单击某些内容,则表单身份验证已过期并且他们被重定向到登录页面 - 他们说“wtf?我刚刚单击了保存按钮,为什么我必须登录?”所以这是一种让他们知道他们已经以更温和的方式退出的方式。
-
您总是可以编写一个非常轻量级的 ajax 服务来轮询 MVC 以查看计时器是否已过期然后写入隐藏字段等。然后 javascript 可以监视此字段,如果它表示用户会话已过期,显示模态?你怎么看?如果您想在客户端完成所有操作并处理浏览器关闭等问题,这可能是我能想到的最简单的方法
标签: c# jquery asp.net-mvc timeout