1

我正在使用 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

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

4

2 回答 2

1

一些可能很愚蠢的问题

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

  • 检查 cookieName 是否相同

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

于 2012-07-24T12:45:49.430 回答
0

我解决了。似乎在MVC中创建cookie后的“返回视图”导致cookie不被保存。

于 2012-07-27T04:34:43.010 回答