首页 新闻 会员 周边

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

0
悬赏园豆:5 [已解决问题] 解决于 2019-06-05 21:59

我是如下这样写的:

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

最佳损友。的主页 最佳损友。 | 初学一级 | 园豆:63
提问于:2015-11-24 10:57
< >
分享
最佳答案
1

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

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

收获园豆:5
dudu | 高人七级 |园豆:31007 | 2015-11-24 11:16
其他回答(2)
0

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

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

于为源 | 园豆:956 (小虾三级) | 2015-11-24 14:37
0

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

空明流光 | 园豆:106 (初学一级) | 2015-11-24 17:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册