【问题标题】:Clear Current Session while Back Navigation in browser在浏览器中返回导航时清除当前会话
【发布时间】:2013-06-18 13:37:13
【问题描述】:

我有一个 asp.net 应用程序。如果用户在其浏览器中执行后退导航,我如何清除当前会话

【问题讨论】:

  • 你这样做的目的是什么?也许有更现实的方法:)
  • 暂时忽略您希望如何响应返回按钮(即清除会话),您打算如何检测后退按钮已被按下?从历史上看,这往往是非常困难和不可靠的。一般来说,HTTP 是一个简单的请求/响应系统。浏览器只是向您的服务器发送请求。您如何区分浏览器发送请求是因为用户按下了后退按钮、单击了指向同一页面的链接还是手动输入了该页面的地址等?

标签: asp.net


【解决方案1】:

您可以通过(可能是您想要的)删除会话:

Session.Abandon();

或通过以下方式清除会话中的所有值:

Session.Clear();

【讨论】:

  • 我可以从哪个事件调用 Session.Abandon()。我怎么知道发生了后退导航?
  • 这不是你的问题。然而没有事件。你必须建立一些定制的东西。检测到后退浏览器按钮是有异味的,这意味着您的代码有问题。例如,您在数据库中保存了两次,这表明您在数据库中执行了保存操作,而没有强制用户执行 get(重定向)。
  • 没有返回导航事件。捕获这一点的唯一方法是使用 javascript 方法 OnUnload() ,该方法将捕获客户端何时离开页面,无论他们要去哪里。
  • @peter 你应该提供一个完整的解决方案。这里主要的挑战是识别点击的后退按钮。
猜你喜欢
  • 1970-01-01
  • 2020-12-05
  • 2014-04-04
  • 2021-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-26
相关资源
最近更新 更多