[已关闭问题]
<P>我们知道,如果想实现跨域清除cookie,可以采用在当前域的页面里放置图片,图片的地址指向另一个域的页面,这个页面的功能是清除当前用户的cookie.<BR>这种方法在"会话cookie"前提条件下是可行的,但一旦设置了cookie的过期时间,即为"持久性cookie"那么这种方式就不奏效了.有可能是浏览器的设计上的问题吧?<BR>不知道大家有没有碰到这样的问题,对此有什么看法?</P>
问题补充:
其实代码很简单的,大致如下:
DomainA_SetCookie.aspx
---------------------------------------------------------------------
HttpCookie userCookie = new HttpCookie("UserInfo");
userCookie.Value = "I am a man";
userCookie.Expires = DateTime.Now.AddDays(14);
Response.Cookies.Add(userCookie);
---------------------------------------------------------------------
DomainA_ClearCookie.aspx
---------------------------------------------------------------------
HttpCookie userCookie = Request.Cookies["UserInfo"] as HttpCookie;
if (userCookie == null)
{
userCookie = new HttpCookie("UserInfo");
}
userCookie.Value = "";
userCookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(userCookie);
---------------------------------------------------------------------
DomainB_SomePage.html
---------------------------------------------------------------------
<img src="http://DomainA/DomainA_ClearCookie.aspx">
---------------------------------------------------------------------
如果是"会话cookie"上面的代码一点问题都没有,我想可能是会话cookie是存放在内在中的,浏览器会帮助清除掉内存中了的cookie,而如果是"持久性cookie"则存放在文件中,浏览器只能帮助处理当前浏览器所在域的cookie,有可能是为安全考虑吧.郁闷的.不知道有没有说清楚.
Leem
|
初学一级
|
园豆:
55
提问于:2008-01-20 23:40