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

ASP.NET的Cookie跨域问题
将Cookie的有效范围限制到域。?
默认情况下,Cookie 与特定的域相关联。
例如,如果您的站点是 ? www.contoso.com,那么当用户向该站点请求页面时,
您编写的Cookie就被发送到服务器。(有特定路径值的Cookie除外) ?
如果您的站点有子域(例如 ? contoso.com、sales.contoso.com ? 和 ? support.contoso.com),
就可以把Cookie同特定的子域相关联。为此,需要设置Cookie的 ? Domain ? 属性,如下所示:?
Response.Cookies(?"domain?").Value???=???DateTime.Now.ToString?
Response.Cookies(?
"domain?").Expires???=???DateTime.Now.AddDays(1)?
Response.Cookies(?
"domain?").Domain???=???"support.contoso.com?"?
如果按照这种方式设置域,则Cookie只能用于指定子域中的页面。?
您也可以利用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,只能实现同一个根域下的Cookie
如:www.it100.info,在这个根域下的所有二级域名可共享Cookie,{mail.it100.info,photo.it100.info}
?? ? ? ?public?static?bool?CreateCookie(string?strCookieName,?string?strCookieValue,?string?strDomain,?bool?blURLEncode)
????????{
????????????
if?(blURLEncode)
????????????{
????????????????strCookieValue?
=?System.Web.HttpContext.Current.Se