2012-10-01 203 views
1

我有一個登錄頁面和一個主頁。用戶可以使用用戶名和密碼從登錄頁面登錄到主頁。我想實現的是:如何清除瀏覽器歷史清除緩存?

)當用戶從主頁上登出,他/她不應該通過點擊 向前瀏覽器按鈕「登錄」

1。

2)確定瀏覽器會存儲主頁的歷史記錄。但是當用戶點擊瀏覽器中可用主頁的歷史鏈接時,它應該被重定向到登錄頁面而不是主頁。

我曾嘗試通過使用Page_Load事件下面的代碼在主頁上清除緩存:

HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache); 
Response.Cache.SetNoStore(); 
Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1)); 

但它仍然沒有工作。任何形式的幫助都非常感謝。

回答

-1

你是如何保存登錄信息的?如果使用會話變量,則可以在用戶註銷時清除會話,然後在每個需要用戶登錄的頁面上查看檢查以確保會話變量存在於頁面加載中,如果存在,則讓用戶繼續,如果沒有重定向到登錄頁面(您可以通過使用母版頁快速完成此操作)

如果您使用cookie存儲日誌,那麼當用戶註銷時您可以僅僅過期cookie

+0

我使用JavaScript來通過用戶名和密碼作爲查詢字符串 – Niar

+0

的價值觀這是真的不對付登錄即使你編碼的URL的安全的方式,我會建議您切換到一個服務器端過程,作爲一個用戶,我知道我不會很滿意在我的電腦上編輯內容的網站,這是你的問題試圖做的事情(只是我的兩分錢它的價值) – jgok222

+0

好。感謝您的建議。我會嘗試通過使用會話.. – Niar

-1

我已經爲你解決請看下面

希望鏈接,你會得到你的答案

stackoverflow

也可找到此DotnetFundaa

在頁面加載時將代碼的下方

Response.Cache.SetCacheability(HttpCacheability.NoCache); 
    Response.Cache.SetExpires(DateTime.Now); 
-1

當用戶登錄,保住自己的用戶ID或任何唯一的ID的用戶。當他點擊退出時,將未設置用戶名會話。並在你的頁面添加幾行。

<?php 
session_start(); 
$_SESSION['uid']=$uid; 
if($uid=='') 
{ 
header("location:loginpage.php"); 
} 
?> 

它會工作。

+0

也許它的工作哦,PHP,但這裏是要求的asp.net解決方案 – Aristos

+0

哦...所以m asp.net的傢伙... – tannerjohn

0

在主頁的OnPrerender()事件中使用follwing代碼。它爲我工作。

protected override void OnPreRender(EventArgs e) 
     { 
      base.OnPreRender(e); 
      string sb; 
      sb = "<script language=javascript>\n"; 
      sb += "window.history.forward(1);\n"; 
      sb += "\n</script>"; 
      ClientScript.RegisterClientScriptBlock(Page.GetType(), "clientScript", sb); 
     }