javascript - 浏览器关闭时终止 session

标签 javascript c# asp.net asp.net-mvc-4

我需要在用户关闭浏览器或重定向到其他页面时终止 session 。 我可以看到以下实现此功能的选项:

  1. 不使用 session 登录。这不是我的情况,因为我必须进行很多更改,而且我还使用 session 来处理其他一些数据。
  2. 我可以使用这样的东西:
window.onunload = window.onbeforeunload = (function () {
   ...
  })

并从此代码中调用清理 session 和执行注销的操作。 听起来很糟糕,但同样重要的是 - 此 JavaScript 代码仅适用于 IE。

  1. 我可以创建一些使用一些虚拟调用的讨厌代码,比方说每分钟一次,只是告诉服务器用户还活着。 但它真的很讨厌。它会在服务器上使用无用的负载,大量无用的调用,如果某些调用丢失(由于连接问题或其他原因),用户将注销。

还有其他选择吗?

最佳答案

您已经离开了 #4:什么都不做,让 session 在一段合理的时间(比如 20 分钟)后超时;如果他们在离开 20 分钟后尝试在该页面上做某事,只需显示一个页面告诉他们他们的 session 已过期并重新登录。这通常是最简单的选择。

如果您不想这样做,#3 确实是您唯一可行的选择,但每分钟一次可能有点矫枉过正。将 session 超时设置为 20 分钟,记住用户何时做了某事,如果他们空闲了(比如)15 分钟,则代表他们主动调用。但即便如此,我也会限制我这样做的次数,几个小时后你可能只想将他们重定向到登录页面。

关于javascript - 浏览器关闭时终止 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28656982/

相关文章:

javascript - JSX:如何使用 2 个字符串和 css 模块创建 css 类

c# - 使用 C# 和 ODP.NET 执行 Oracle 事务

javascript - 如果要在 ASP.NET MVC 5 中覆盖数据库行,如何向用户显示弹出窗口或警告

c# - IClientChannel 反模式

javascript - (我失败了)Javascript 挑战 : function add()()() with closures

javascript - 在 JavaScript 中将一个时区转换为另一个时区

javascript - Vue.js 打印原始 html 并调用组件方法

c# - SSL 证书绑定(bind)失败 - 访问被拒绝

c# - 查找数组 C# 中的下一个最大值

javascript - 更改中继器中的复选框 ID