我正在使用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
由于某种原因,它显示了一个空字符串数组。 任何想法?
答案 0 :(得分:1)
一些可能很愚蠢的问题
检查您的网络服务器时间和日期,是否设置正确,如果是(在您的情况下),2年后它会立即使Cookie过期。
检查cookieName是否相同
检查将cookie设置为响应后,在设置cookie之前不重定向。要设置cookie,您需要设置标题并将其推出。
答案 1 :(得分:0)
我解决了。看来在MVC中,cookie创建后的“返回视图”会导致cookie无法保存。