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会立即被删除

您正在做的只是一个小错误,添加cookie使用响应而不是请求

纠正代码:

 HttpCookie cookie = new HttpCookie(key);
 cookie.Value = value;
 cookie.Expires = DateTime.Now.AddMinutes(10);
 HttpContext.Current.Response.Cookies.Add(cookie);

出于安全考虑,您只能读取由页面设置的cookie它们是同一个定义域的一部分。如果cookie的Path属性有设置后,该cookie仅对其中的页面和子文件夹可用域的路径。

http://msdn.microsoft.com/en-us/library/bd70eh18%28v=vs.100%29.aspx

你可以检查你没有试图从不同的页面读取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];