【问题标题】:How to clear / abandon Session if user clicks on browser Back button in asp.net如果用户单击asp.net中的浏览器后退按钮,如何清除/放弃会话
【发布时间】:2014-03-21 07:05:23
【问题描述】:

需要清除浏览器后退按钮上的会话(重定向到登录或错误页面),如果用户再次在浏览器中粘贴相同的 URL 以访问网页或单击浏览器前进按钮,因为会话已过期/放弃所以重定向到登录或错误页面。任何时候都不应从浏览器缓存中显示相同或任何应用程序网页。

技术栈:

  • Microsoft.NET
  • Java 脚本/C#

  • IE7/8/9/10

  • 野生动物园
  • Mozilla

【问题讨论】:

标签: c# asp.net .net session session-state


【解决方案1】:

我不认为禁用缓存是个好主意。对您来说唯一重要的是用户必须在点击导航按钮时登录并重新开始。您需要有一个退出页面,该页面可以执行您需要执行的任何操作来退出并清除会话,然后在用户离开时重定向到该页面。

$(window).bind('beforeunload', function (event) {
   //if(some condition that detects user hasn't clicked a link on your page)
       location.href = "/signout.aspx";
}

【讨论】:

    【解决方案2】:

    不幸的是,大多数现代浏览器会在用户单击返回按钮后从缓存中重新加载页面。没有请求发送到服务器。

    您可以尝试通过在 html head 部分添加元信息来禁用缓存:

    <meta http-equiv="cache-control" content="max-age=0" />
    <meta http-equiv="cache-control" content="no-cache" />
    <meta http-equiv="expires" content="0" />
    <meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
    <meta http-equiv="pragma" content="no-cache" />
    

    但请记住,决定从缓存中重新加载什么内容以及再次请求什么内容的浏览器。

    【讨论】:

      猜你喜欢
      • 2019-11-30
      • 1970-01-01
      • 1970-01-01
      • 2020-04-19
      • 1970-01-01
      • 1970-01-01
      • 2012-08-05
      • 2012-09-17
      • 2012-10-27
      相关资源
      最近更新 更多