【问题标题】:Deleting History pages in ASP.net在 ASP.net 中删除历史记录页面
【发布时间】:2010-10-21 15:20:14
【问题描述】:

如何删除 ASP.net 中的历史页面? 在我的应用程序中,当用户注销时,我删除了会话变量并使 cookie(aspxauth 和 asp_net_sessionId)过期,但是当用户单击浏览器的后退按钮时,用户仍然可以看到包含所有用户信息的页面。然而,页面无法与服务器交互,因为会话不可用,但过期页面包含人口统计信息,这是对安全问题有害的情况。 任何帮助表示赞赏。

【问题讨论】:

  • 你不能。您必须确保这些页面没有存储在“历史记录”中。

标签: asp.net


【解决方案1】:

据我所知,你不能。但是,您可以禁用页面上的缓存,这应该会为您提供所需的结果。当用户点击返回,而不是显示缓存页面时,页面应该被再次拉出。如果您的网站设置正确,它应该将它们重定向到登录页面。

【讨论】:

  • +1。有几种方法可以做到这一点,最后我知道的是,浏览器中存在不一致。有关正确操作的详细信息,请参阅此链接:forums.asp.net/p/1060173/1519897.aspx
【解决方案2】:

如果这是安全数据,您应该使用 HTTPS 来提供它,无论如何它都不会缓存它。你也可以试试

response.Headers.Add("pragma", "no-cache");
response.Headers.Add("Cache-control", "no-cache, no-store, must-revalidate");
response.Headers.Add("Expires", "01 Apr 1995 01:10:10 GMT");

让页面立即过期。

【讨论】:

    【解决方案3】:

    历史页面是浏览器的客户端功能,而不是服务器端。因此,除了使用 ASP.NET 和 C# 之外,您无法删除。

    可以创建一个可以删除历史记录的 javascript 客户端代码,但我不认为这是一个好的设计。也许这是您唯一的选择,但从用户的角度来看,我会觉得无法访问浏览器历史记录很烦人。

    我想你应该考虑一个不同的策略,比如避免缓存页面。

    【讨论】:

      猜你喜欢
      • 2019-08-06
      • 2017-11-02
      • 1970-01-01
      • 2023-03-27
      • 2022-11-03
      • 1970-01-01
      • 1970-01-01
      • 2010-09-22
      相关资源
      最近更新 更多