我正在设置一个cookie:
HttpCookie cookie = new HttpCookie("simpleorder"); cookie.Expires = DateTime.Now.AddYears(1); cookie["order"] = carModel.ToString(); cookie["price"] = price.ToString(); Response.Cookies.Add(cookie);
但是当我几秒钟后检查它已经过期,到期日期设置为{01-01-0001 00:00:00}.我尝试通过检索代码
HttpCookie cookie = Request.Cookies["simpleorder"]; if (cookie != null && cookie.Expires > DateTime.Now)...
我不清楚cookie的任何地方,所以我不知道为什么它过期?
解决方法
这是常见的误解.请求Cookie集合表示请求Cookie标头中包含的Cookie.此类Cookie不包含有关何时到期的任何信息.严格来说,.NET应该使用两种不同的类型(RequestCookie和ResponseCookie),而是选择在两种情况下使用相同的类型.
当向响应添加Cookie时,Expires值才有意义.