2012-04-16 57 views
0

我正在使用MVC2和VS2010。 我们创建了一个Web应用程序,但希望在页面离开后停止浏览器重新访问页面。 我们希望这样做,以便使用公共计算机然后离开的人可以感到安全。我们不希望以下用户可以使用后退按钮查看第一次使用页面的情况。 我试过[OutputCache(NoStore = true,Duration = 0,VaryByParam =“*”)] 这似乎工作正常,我得到一个网页过期。但是,如果我再次按下浏览器后退按钮,页面将显示。如何停止浏览器后退按钮显示我已离开的页面

+0

使用ajax加载页面。 – 2012-04-16 13:43:43

+0

您是否尝试设置上次修改日期?不确定这是否已经由mvc2完成 – Chris 2012-04-16 13:46:03

回答

1

我有一个很相似的情况,我想阻止浏览器后面的情况,并研究了一些不同的解决方案。第一个也是最糟糕的是Java脚本功能,如果用户单击浏览器中的后退按钮,用户就会回到他们所在的页面。它隐藏了问题,而不是解决它,但思想编号提到它。代码如下:

<script type="text/javascript" language="javascript"> 
     function disableBackButton() { 
      window.history.forward() 
     } 
     disableBackButton(); 
     window.onload = disableBackButton(); 
     window.onpageshow = function (evt) { if (evt.persisted) disableBackButton() } 
     window.onunload = function() { void (0) }; 
    </script> 

这适用于Firefox,Chrome和IE。你可以把它放在你的母版页中。 很多人会告诉你这是不是然而做事情的方式,因为它侵入上著名的浏览器的行为等等等等

所以我的第二个建议是我在这里看到: Disable browser cache for entire ASP.NET website 这将不缓存任何事情更符合你想要的东西我想。

另一个想法是传递一个页面或会话令牌来执行操作,检查令牌 - 如果它的无效重定向到错误页面。这至少会阻止新用户对上一页进行任何操作。

我想知道如何解决这个问题,如果你已经解决了它。

相关问题