2010-10-21 102 views
0

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

+1

你不能。您必须确保这些页面不存储在“历史记录”中。 – bzlm 2010-10-21 15:24:45

回答

3

你不能据我所知。但是,您可以禁用页面上的缓存,从而获得所需的结果。当用户点击后,而不是显示缓存页面,页面应该再次被拉。如果您的网站设置正确,则应将其重定向到登录页面。

+0

+1。有几种方法可以做到这一点,最后我知道,浏览器中存在不一致。有关正确执行此操作的详细信息,请参阅此链接:http://forums.asp.net/p/1060173/1519897.aspx – David 2010-10-21 15:29:50

1

如果这是安全的数据,你应该为它提供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"); 

让页面立即过期。

0

历史页面是浏览器,客户端功能,而不是服务器端。所以你不能删除比使用ASP.NET和C#。

可能创建一个JavaScript,客户端代码,将删除历史,但我不认为这是好的设计。也许这是你唯一的选择,但从用户的角度来看,我会发现恼人的不能访问浏览器的历史。

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