-->

ASP.NET 如何创建持久化的Cookie?

2019-06-05 21:30发布

问题:

我是如下这样写的:

HttpCookie cookies = new HttpCookie("source");
        protected void Page_Load(object sender, EventArgs e)
        {
            if (cookies["source"] == null)
            {
                result = "Cookies 1";
                cookies["source"] = "pc";

                cookies.Domain = "www.testdomain.com";
                cookies.Expires = DateTime.Now.AddMinutes(30);
                
                HttpContext.Current.Response.Cookies.Add(cookies);
            }
            else
            {
                result = "Cookies 2";
                HttpContext.Current.Response.Write(cookies["source"].ToString());
            }
        }

现在我想知道应该如何让它持久化,因为当我关闭浏览器或者让这个页面默认跳转到另外一个网站(即另外一个域)后,我无法拿到Cookie

回答1:

如果根域相同,只是子域不同,可以通过 cookies.Domain = ".testdomain.com"; 跨域。

如果根域不同,cookie是无法跨域的。



回答2:

dudu说的对,跳转到其他根域以后,就是应该无法拿到了。

要设置长不过期,就是通过cookies.Expires这个属性。设置为cookies.Expires = DateTime.MaxValue就永远不过期了,哈哈。



回答3:

Cookie是按域名存储的,跳转到其它网站当然不行了。