Cookie的存储读取删除修改 (cookie.Expires读取永远是零时间)

Posted 奥兰王子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cookie的存储读取删除修改 (cookie.Expires读取永远是零时间)相关的知识,希望对你有一定的参考价值。

1. Domain 和 Path 属性 是读不到的,读Domain属性永远是””,读Path属性永远是 ”/” 。本来这些属性的用途很有限。如果您的页面与 Cookie 不在相同的域,您根本就不会在页面的位置接收到该 Cookie。

2. 也无法读取Cookie 的过期日期和时间。事实上,当浏览器向服务器发送 Cookie 信息时,浏览器并未将过期信息包括在内。您可以读取 Expires 属性,但总是返回为零的日期/时间值。Expires 属性的主要作用是帮助浏览器执行有关 Cookie 保存的日常管理。从服务器的角度来看,Cookie 要么存在要么不存在,所以对服务器而言,有效期并不是有用的信息。
所以,浏览器在发送 Cookie 时并不提供此信息。如果您需要 Cookie 的过期日期,就必须重新设置。

3.Domain 设置的时候 Request.Url.Authority;有可能导致cookie不能正常读取;(我是本地测试有时无法正常读取,因为Request.Url.Authority取值为 localhost:1262 )可以改成这样“http://”+Request.Url.Authority cookie就可以正常读取。{这个还要测试}

 写入cookie

public void SetCookie()
        {
            HttpCookie cookie = new HttpCookie("man");
            cookie.Values.Add("name", "liming");
            cookie.Values.Add("age", "20");
            cookie.Expires = DateTime.Now.AddDays(1);
            cookie.Domain = Request.Url.Authority;
            Response.AppendCookie(cookie);
        }

  

读取cookie

HttpCookie cookie = Request.Cookies["man"];
            if (cookie != null)
            {
                string name = cookie.Values["name"];
            }

  

删除cookie

HttpCookie cookie = Request.Cookies["person"];
            cookie.Expires = DateTime.Now.AddDays(-1);
            Response.AppendCookie(cookie);

  

以上是关于Cookie的存储读取删除修改 (cookie.Expires读取永远是零时间)的主要内容,如果未能解决你的问题,请参考以下文章

运用JS设置cookie读取cookie删除cookiev

JS设置读取删除cookie及表单交互

[JS]笔记15之客户端存储cookie

Java学习之文件io流篇

selenium读取添加删除cookie

localStorage本地存储数组读取修改删除