我是如下这样写的:
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
如果根域相同,只是子域不同,可以通过 cookies.Domain = ".testdomain.com"; 跨域。
如果根域不同,cookie是无法跨域的。
dudu说的对,跳转到其他根域以后,就是应该无法拿到了。
要设置长不过期,就是通过cookies.Expires这个属性。设置为cookies.Expires = DateTime.MaxValue就永远不过期了,哈哈。
Cookie是按域名存储的,跳转到其它网站当然不行了。