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);
原文地址:https://www.cnblogs.com/housh/p/4544162.html