2014-06-16 27 views
0

我正在使用MVC5在ASP.Net中工作。一旦我退出應用程序,然後單擊瀏覽器的後退按鈕,我將重定向回到我正在瀏覽的頁面。 我試圖清除會話,但問題仍然存在如何避免在登出應用程序後點擊瀏覽器的後退按鈕來加載儀表板?

任何人都可以幫助我與MVC 5緩存.... PLSS

我考慮使用Redis的緩存,但不知道如何實現

+0

你試過FormsAuthentication.Signout()嗎? – gkrishy

+0

@gkrishy沒有。我不是 – TechNo

+0

@gkrishy我們如何配置應用程序以使用formsauthentication? – TechNo

回答

0

你需要禁用輸出(瀏覽器)的緩存,這樣瀏覽器不會存儲用戶註銷後的「受保護」頁面的副本。目前瀏覽器在本地存儲頁面的緩存副本,因爲瀏覽器沒有「登錄」的概念,它只是顯示頁面 - 請求從未擊中你的MVC控制器,因爲瀏覽器說「嗨,我有那個頁面已經在這裏了!「

您可以使用下面的屬性

[OutputCacheAttribute(VaryByParam = "*", Duration = 0, NoStore = true)] // will be applied to all actions in MyController, unless those actions override with their own decoration 
public class MyController : Controller 
{ 
    // ... 
} 

每個「授權」動作/控制器上禁用它,或者你可以用你的FilterConfig.cs類以下全局禁用它。

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
{ 
    filters.Add(new OutputCacheAttribute 
        { 
         VaryByParam = "*", 
         Duration = 0, 
         NoStore = true, 
        }); 
    // the rest of your global filters here 
} 
+0

是的,爲我工作:)謝謝 我把'[OutputCacheAttribute(VaryByParam =「*」,Duration = 0,NoStore = true)]'它停止緩存頁面歷史記錄,所以不去那個頁面在點擊後:) – TechNo

相關問題