2012-04-16 94 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 這將不緩存任何事情更符合你想要的東西我想。

另一個想法是傳遞一個頁面或會話令牌來執行操作,檢查令牌 - 如果它的無效重定向到錯誤頁面。這至少會阻止新用戶對上一頁進行任何操作。

我想知道如何解決這個問題,如果你已經解決了它。

相關問題