2010-09-01 155 views
1

您好我想清除用户页面的历史记录,他们从他们的页面操作注销后。我GOOGLE了它,并找到一些缓存方式,但它不工作正常。通过Asp.net-C清除浏览器历史记录#

+1

我不确定你想要做什么,但“代码4我!”是不是一个非常有礼貌的方式来寻求帮助。 – DavidGouge 2010-09-01 10:26:48

+0

对不起,我用你的语言表达了你的感受。 – 2010-09-01 15:59:29

回答

1

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

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

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

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

+0

这是一个很好的建议,特别是关于浏览器没有缓存页面。 – 2010-09-02 22:08:59

1

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

1

这通常是不是一件好事,因为它会改变用户体验,改变浏览器对大多数用户来说已成为第二性质的行为。我知道,当我遇到它时,这种事会让我感到困扰。我想到的思想是沿着这条线:

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

你应该扩大为什么需要这个。我可以想象在某些情况下你可能想要这样做,比如在线考试或调查。但以我的经验来看,这种不寻常的要求通常来自需求收集过程,这个过程还没有经过深思熟虑。

在大多数情况下,如你上面提到的考试方案将可能需要跟踪用户的页面浏览量中的会话状态,也可能是用户数据库,如果你需要,以防止他们返回页面进行的跨多会话。然后,您需要检查该用户的“已查看页面”状态,并且如果他们尝试访问上一页,请决定是否向他们显示错误消息或将其重定向到您希望他们转到的位置。这通常会在Page_Load事件中完成。

这将允许您阻止他们访问您网站中的上一页,而不清除其他网站上访问的页面的历史记录。

另外,您可能会喜欢看ASP.NET向导控件。它可以配置为提供只向前的向导风格的界面,但这意味着您将各种视图的所有代码都放在一个页面上。对小巫师来说不错,但对于大巫师来说有点笨拙。