浏览器关闭时是否有可靠的方法将用户注销?

Mik*_*ike 9 javascript asp.net session asp.net-membership

我正在寻找一种可靠的方式来注销用户或在浏览器关闭时放弃他们的会话.有没有办法用标签式浏览器做到这一点?任何建议表示赞赏.谢谢!

Bal*_*usC 11

当客户端关闭浏览器时,没有可靠的方法立即执行此操作.有beforeunload事件发生,但即便如此,当你在此事件中发出ajax请求时,也无法保证能够到达服务器.然而,您仍然遇到多个浏览器标签的问题.

最可靠的方法是在服务器端具有相对较短的会话超时(例如1分钟)并在客户端引入基于ajax的心跳(例如每30秒)以使会话保持活动.

根据您认为这是解决方案的唯一功能要求,可能有更好的方法.例如,如果您的实际意图是将每个注册用户的所有登录限制为1,那么您最好收集所有登录和关联的会话,然后在每次登录时对此进行比较,并使之前的会话无效(如果存在).通过这种方式,它可以在禁用JS的客户端上运行.