Cookie会立即被删除
本文关键字:删除 Cookie | 更新日期: 2023-09-27 18:03:00
我将访问令牌添加到用户cookie中,当我第一次检查它是否仍然存在时,它是。但下次我再找的时候,就不见了。当我从cookie中获取它时,它会被删除吗?或者我哪里错了?
这是我如何添加cookie:
HttpCookie cookie = new HttpCookie(key);
cookie.Expires = DateTime.Now.AddMinutes(10);
HttpContext.Current.Request.Cookies.Add(cookie);
您正在做的只是一个小错误,添加cookie使用响应而不是请求
纠正代码:
HttpCookie cookie = new HttpCookie(key);
cookie.Value = value;
cookie.Expires = DateTime.Now.AddMinutes(10);
HttpContext.Current.Response.Cookies.Add(cookie);
http://msdn.microsoft.com/en-us/library/bd70eh18%28v=vs.100%29.aspx出于安全考虑,您只能读取由页面设置的cookie它们是同一个定义域的一部分。如果cookie的Path属性有设置后,该cookie仅对其中的页面和子文件夹可用域的路径。
你可以检查你没有试图从不同的页面读取cookie,而不是设置。
也可参阅此页:http://msdn.microsoft.com/en-us/library/system.web.httprequest.cookies%28v=vs.110%29.aspx
ASP。NET包含两个固有的cookie集合。集合通过cookie集合访问的HttpRequest包含在Cookie报头中,客户端发送给服务器的Cookie。通过HttpResponse的cookie集合访问的集合包含在服务器上创建并传输到的新cookie
使用HttpResponse添加cookie后。饼干集合,cookie在HttpRequest中立即可用。饼干集合,即使响应尚未发送到客户端。
您正在设置Request集合中的Cookie,然后试图将其读取回来。也许你应该试着读一下《回应》。而不是收集饼干?
。把
HttpCookie cookie = HttpContext.Current.Request.Cookies[key];
HttpCookie cookie = HttpContext.Current.Response.Cookies[key];