【问题标题】:Remove session ASP.NET c# when the user close the tab当用户关闭选项卡时删除会话 ASP.NET c#
【发布时间】:2016-01-07 20:39:12
【问题描述】:

当用户关闭选项卡或浏览器时,我需要关闭会话,因为重要信息和事务已被管理。有人可以帮助我,请或告诉我是否不是网页的标准想法。谢谢

【问题讨论】:

  • 您可以使用window.onbeforeunload(应该使用window.addEventListener("beforeunload", function(){ /* AJAX call here*/ })检测用户何时离开页面(通过在同一选项卡中请求另一个页面或关闭选项卡),但我没有认为在所有浏览器中都可以进行 AJAX 调用。
  • 但是这个事件不只是为了关闭标签吧?
  • 没有。没有关闭选项卡的事件,因为没有关闭浏览器的事件(就此而言,使用会话)。不要忘记用户也对他/她的安全负责。如果您真的非常想要严格,请在所有请求之间使用唯一令牌(例如,用户登录,然后页面中的所有链接都包含密钥X。当用户单击链接时,会发送密钥在 url 中生成一个新密钥,比如Y,并将其应用于所有链接,...)。烦人:后退按钮是不允许的,如果用户关闭标签页再重新打开,他必须重新登录。

标签: asp.net session


【解决方案1】:

您不能这样做,因为 HTTP 是无状态协议。您无法知道他们是否已经完成或只是在等待,而打开的浏览器什么也不做。

您的主要选项是会话超时 - 您可以减少超时以更快地关闭非活动会话,但这可能会导致合法用户在完成之前遇到会话超时问题。

您可以编写一些 JavaScript 来进行异步调用,以根据不活动状态删除会话。 (就像网上银行如何让您退出)。

【讨论】:

    猜你喜欢
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多