通过Asp.net-C清除浏览器的历史记录#

时间:2010-09-01 10:23:24

标签: asp.net

您好我想清除用户页面从他们的页面操作中退出的历史记录。我用Google搜索并找到了一些可缓存性的方法,但它不能正常工作。

3 个答案:

答案 0 :(得分:1)

您无法清除浏览器历史记录。无论是.net还是javascript。

答案 1 :(得分:1)

这通常不是一件好事,因为它会改变用户体验,改变大多数用户已经成为第二天性的浏览器行为。我知道当我碰到它时,这种事情会让我感到厌烦。贯穿我脑海的想法是:

  

你为什么不让我回去?!!我点击了后退按钮 - 它应该把我带回来!你以前让我到那个页面!为什么我不能回去呢?让我回去吧!

你应该扩展为什么需要这个。我可以想象在某些情况下您可能想要这样做,例如在线考试情况或调查。但根据我的经验,这种不寻常的要求通常来自需求收集过程,而这个过程并未经过深思熟虑。

在大多数情况下,例如上面提到的考试场景,您可能需要在会话状态中跟踪用户的页面视图,或者如果您需要阻止它们返回,则可能需要用户数据库到多个会话的页面。然后,您需要检查该用户的ViewedPages状态,如果他们正在尝试访问上一页,请决定是否向他们显示错误消息或将其重定向到您希望他们前往的位置。这通常会在Page_Load事件中完成。

这样,您就可以阻止他们访问您网站中的上一页,而无需清除其他网站上访问过的网页的历史记录。

此外,您可能希望查看 ASP.NET向导控件。它可配置为提供仅向前向导样式的界面,但这意味着各个视图的所有代码都在一个页面上。对于小巫师来说不错,但对于大巫师来说有点笨拙。

答案 2 :(得分:1)

您可能想要考虑的一件事是在服务器端更优雅地处理场景。

首先,我会考虑一种指示浏览器不缓存页面的方法。然后,在您希望“安全”的每个页面上,您可以检查(即,在基类中)需要访问这些页面的cookie。当用户注销时,请删除cookie。

这样,如果用户点击后退按钮并且最终尝试导航到其中一个页面,则服务器将需要再次提供该页面,并且您的检查可以到位以查看它们是否应该是能够访问它。如果他们无法将其重定向到您要查找的任何类型的页面 - 无论是信息页面,登录页面等等。

这也解决了应该限制和/或为其添加书签的用户“共享URL”。我们之前在项目中使用了类似的方法,它简单而有效。无法登录后无法访问该页面的用户只需重定向到登录页面即可。查看日志,大多数日志都没有引用页面,这意味着它们可能已经为页面添加了书签。