我用设置domain解决了读取不同站点cookie的问题
http://www.microsoft.com/china/msdn/archives/library/dv_vstechart/html/vbtchASPNETCookies101.asp
=====================================================================
您也可以利用 Domain 属性来创建可在多个子域中共享的 Cookie。例如,对域进行如下设置:
Response.Cookies("domain").Value = DateTime.Now.ToString
Response.Cookies("domain").Expires = DateTime.Now.AddDays(1)
Response.Cookies("domain").Domain = "contoso.com"
这样,该 Cookie 就可用于主域、sales.contoso.com 和 support.contoso.com
======================================================================
这种方法只适用于同一个域之间的站点,不能根本解决不同站点间数据信息读取,不过这个方法很简单,加一行代码就可以了
-------------------------------------------------------------------------------------------------------------------------
// 判断cookie是否存在
if (Request.Cookies[ " remrember " ] != null && Request.Cookies[ " remrember " ][ " userName " ] != null )
{
}
// ******
// 关于多站点共享Session的解决方案
Response.Cookies[ " remrember " ][ " userName " ] = Session[ " UserId " ].ToString();
Response.Cookies[ " remrember " ].Domain = " 8bao.com " ; // 关键
Response.Cookies[ " remrember " ].Expires = DateTime.Now.AddDays( 1 ); // 不可忽略
// ******
生成的cookie(IE=>工具=>internet选项=>常规=>设置=>查看文件):
cookie名:Cookie:administrator@8bao.com/
cookie内容:remrember userName=xiaodi 8bao.com/ 1536 1765652096 29704949 1759498592 29704748 *
// 删除共享Session的cookie
HttpCookie cookie = Request.Cookies[ " remrember " ];
cookie.Expires = DateTime.Today.AddDays( - 10 );
cookie.Domain = " 8bao.com " ; // 关键
Response.Cookies.Add(cookie);
// ******
删除Cookie的补充:
删除Cookie(即把该 Cookie 从用户的硬盘上物理删除)。由于Cookie位于用户的计算机中,所以您无法直接将其删除。但是,您可以让浏览器为您删除Cookie。即将其有效期设置为过去的某个日期。当浏览器检查Cookie的有效期时,就会删除这个已过期的Cookie。
参考资料:
http://www.15seconds.com/issue/971108.htm