我将访问令牌添加到用户cookie,第一次当我检查它是否仍然存在时,它是。但是下次我找它,它就不存在了。当我从cookie中获取它时会被删除吗?或者我错了什么?
这是我添加cookie的方式:
HttpCookie cookie = new HttpCookie(key);
cookie.Expires = DateTime.Now.AddMinutes(10);
HttpContext.Current.Request.Cookies.Add(cookie);
答案 0 :(得分:2)
您只是犯了一个小错误,使用响应而非请求
添加Cookie更正后的代码:
HttpCookie cookie = new HttpCookie(key);
cookie.Value = value;
cookie.Expires = DateTime.Now.AddMinutes(10);
HttpContext.Current.Response.Cookies.Add(cookie);
答案 1 :(得分:0)
出于安全原因,您只能读取由页面设置的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集合。这个系列 通过HttpRequest的Cookies集合访问包含 Cookie由客户端传输到Cookie标头中的服务器。 通过HttpResponse的Cookies集合访问该集合 包含在服务器上创建并传输到服务器的新cookie Set-Cookie标头中的客户端。
使用HttpResponse.Cookies集合添加cookie后, cookie可立即在HttpRequest.Cookies中使用 收集,即使响应尚未发送给客户。
您在Request集合中设置Cookie,然后尝试将其读回。也许您应该尝试从Response.Cookies集合中读取它?
即。改变
HttpCookie cookie = HttpContext.Current.Request.Cookies[key];
到
HttpCookie cookie = HttpContext.Current.Response.Cookies[key];