Cookie会立即被删除

时间:2014-05-11 18:32:37

标签: c# asp.net-mvc cookies

我将访问令牌添加到用户cookie,第一次当我检查它是否仍然存在时,它是。但是下次我找它,它就不存在了。当我从cookie中获取它时会被删除吗?或者我错了什么?

这是我添加cookie的方式:

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

2 个答案:

答案 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];