2010-06-14 72 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