2010-06-14 75 views
2

當用戶登錄到我的站點時,我創建了一個包含一些信息的cookie。但是,只要他們從登錄頁面更改頁面,cookie就會失去它的價值。 Cookie仍然存在,但它是空的。當頁面變化時,ASP.NET MVC Cookie丟失值

我檢查了我的代碼,並且cookie沒有被我所做的任何事情改寫。 有沒有人有任何想法,爲什麼Cookie頁面變爲空時,頁面更改?

以下是創建cookie的方法。

public static void CreateUserCookie(long userId, string username, bool rememberMe) { 

     HttpCookie cookie = new HttpCookie("CookieName"); 
     cookie.Value = string.Format("{0}+{1}+{2}", userId, username, SecurityUtils.CreateHashedCookieValue(userId, username)); 

     if (rememberMe) { 
      cookie.Expires = DateTime.Now.AddMonths(1); 
     } else { 
      cookie.Expires = DateTime.MinValue; 
     } 

     HttpContext.Current.Response.Cookies.Add(cookie); 
    } 
+0

如果您顯示一些代碼(主要是cookie的創建代碼),它將會更容易幫助... – 2010-06-14 06:29:44

+0

我並不認爲它很重要,但它在這裏。 :) – 2010-06-14 06:31:54

回答

2

當你調用這個方法時,你是否爲「rememberMe」參數傳入了true?如果沒有,該cookie將立即過期。

你還沒有顯示你的調用代碼,所以這可能是你所做的。

+0

因此,該Cookie將立即過期DateTime.MinValue?我應該輸入什麼內容才能使其在瀏覽器會話結束時過期? – 2010-06-14 08:54:58

+0

如果你通過「真實」,它將在一個月內過期,或者你可以改變它,所以它會是一個不同的時間段 - 20分鐘,一天等。 – Fenton 2010-06-15 06:33:27