2009-10-22 28 views

回答

3

技术上你不能读取用户的浏览器历史记录。这是关于隐私问题。但是,您可以通过页面引用来确定用户是否被带到您的页面。如果是回发,你可以输出一个服务器端变量。

要获得在JavaScript中引用是很容易

var referrer = document.referrer; 

以确定它是否是一个回发(在C#)

var isPostback = <%= IsPostBack %> 

历史问题是一个比较复杂的。最好的方法是将您的页面立即过期。

Response.Cache.SetNoServerCaching(); 
Response.ExpiresAbsolute = DateTime.Now; 

但这些都是比较宽松的解决方案。你为什么想要这种行为?

+0

我在注册服务器端(asp.net)的消息遇到麻烦。用户编译一个表单,发送到服务器,服务器完成它的服务,并注册一个javascript警报,查找它发现的无效事件。 然后,如果用户导航回到历史记录并再次转发,则该消息会再次出现。 我认为,如果我可以注册一个js函数来检查这种情况,我可以绕过或不提醒。 我不知道您的解决方案是否可以在我的方案中工作,但我会尽力:)谢谢 – tanathos 2009-10-22 14:55:18

2

您可以为每个页面添加日期戳记。如果时间戳太远,用户可能使用后退按钮。但是,如果浏览器不是而不是从从缓存中加载页面,则这不起作用。

等一下,你也可以给url添加一个时间戳。现在您将页面的时间戳与引用者url的时间戳进行比较。

我正在考虑使用cookie的解决方案,但现在我无法获得一个解决方案。有人?

相关问题