2011-12-15 51 views
0

我的應用程序是在Asp.Net MVC3中,我有兩個用戶(管理員和常規)。我維護登錄用戶的Cookie。禁止用戶在註銷後導航。

以下是我的Cookie代碼。

public static void setCookiestring Password ,string UserName) 
{ 
    HttpCookie MyCookie= new HttpCookie("MyCookies"); 
    MyCookie["Password"] = Password; 
    MyCookie["UserName"] = UserName; 
    MyCookie.Expires.Add(new TimeSpan(0,30,0)); 
    HttpContext.Current.Response.Cookies.Add(MyCookies); 
} 

下面是我的Cookie要期滿的代碼,當用戶註銷

public static bool logout() 
     { 
      HttpCookie MyCookie= new HttpCookie("MyCookies"); 

      MyCookie.Expires = DateTime.UtcNow.AddDays(-1); 
      HttpContext.Current.Response.Cookies.Add(MyCookies); 
      return true; 
     } 

我試圖檢查Cookie每個指數()Controller.If的的cookie存在它應該導航到所需的頁面,否則它應該回家。

if (!Cookie.CheckCookie()) 
    { 
     //use the current url for the redirect  
     filterContext.HttpContext.Response.Redirect("~/Home/Index", true); 
    } 

當用戶點擊註銷,他們將被重定向到首頁,但單擊後退按鈕後,最後訪問的頁面可以查看。 我能做些什麼,以便當用戶點擊LogOut時,如果他們點擊返回按鈕,他們仍然應該重定向到首頁,而不是最後訪問頁面。 請建議

回答

1

防止這種情況的一種方法是通過設置適當的響應標頭來排除客戶端上所有已認證的頁面緩存。您可以查看following post,查看可應用於網站已驗證部分的操作篩選器的示例。

+0

@SamMKhan,所以你說即使Index操作是用NoCache屬性裝飾的,你仍然可以使用Back按鈕導航回到它。當我測試它時情況並非如此。 – 2011-12-15 07:48:12