日期:2014-05-17  浏览次数:20430 次

ASP.NET 能否设置跨domain的Cookie
如下所示,如果不设置Cookie的domain(默认Cookiedomian就为localhost),服务器添加Cookie后,客户端IE的确多了个domain为localhost的Cookie

HttpCookie hc = new HttpCookie("C", "VC");
hc.Expires = DateTime.Now.AddHours(2);
//hc.Domain = "www.163.com";

Response.Cookies.Add(hc);

Label1.Text = Request.Cookies.Count.ToString();


但是,之后尝试用如下代码添加一个domain为163的Cookie时,结果代码执行后,发现客户端IE临时文件内没有新增任何Cookie文件,说明添加失败。。。

HttpCookie hc = new HttpCookie("D", "VD");
hc.Expires = DateTime.Now.AddHours(2);
hc.Domain = "www.163.com";

Response.Cookies.Add(hc);

Label1.Text = Request.Cookies.Count.ToString();


请问这是不是因为微软考虑到安全性问题,禁止了对跨域的cookie进行添加和修改呢? 如果是这样,那么如果要实现跨站点登陆,比如在163登陆后,访问baidu和sohu时也登陆了,该如何实现呢?

------解决方案--------------------
不能跨站设置