刷新后Cookie不会保留

时间:2012-07-24 12:42:06

标签: c# asp.net-mvc-3 expired-cookies

我正在使用c#和mvc。我正在尝试将cookie写入用户浏览器。但刷新浏览器后,cookie就会消失。

这是我编写cookie的代码:

 movieCookie = new HttpCookie(cookieName);
 movieCookie.Value = "test;
 movieCookie.Expires = DateTime.Now.AddDays(30);
 //add the cookie 
 HttpContext.Current.Response.Cookies.Add(movieCookie);

和读取cookie的那个:

//check if such cookie exist
HttpCookie movieCookie = null;
if (HttpContext.Current.Request.Cookies.AllKeys.Contains(cookieName))
    movieCookie = HttpContext.Current.Request.Cookies[cookieName];

另外要补充的是,当我像这样搜索“AllKeys”时:

HttpContext.Current.Request.Cookies.AllKeys

由于某种原因,它显示了一个空字符串数组。 任何想法?

2 个答案:

答案 0 :(得分:1)

一些可能很愚蠢的问题

  • 检查您的网络服务器时间和日期,是否设置正确,如果是(在您的情况下),2年后它会立即使Cookie过期。

  • 检查cookieName是否相同

  • 检查将cookie设置为响应后,在设置cookie之前不重定向。要设置cookie,您需要设置标题并将其推出。

答案 1 :(得分:0)

我解决了。看来在MVC中,cookie创建后的“返回视图”会导致cookie无法保存。