| HttpWebRequest跨域cookie的訪問 www. 時(shí)間 : 2008-11-20 作者:佚名 編輯:輝輝 點(diǎn)擊: 819 [ 評(píng)論 ] - - 綜合 資源 電子書 社區(qū) 算算,有一個(gè)星期沒寫blog,自己最近也有些事情忙,而且也沒找到很有價(jià)值的東西寫,所以一直就拉著。最近工作上也沒有 特別煩惱的事,所以也就少了些生活感慨。 最近的一個(gè)小程序中,使用到HttpWebRequest,在對(duì)子域名訪問的時(shí)候,發(fā)現(xiàn)HttpWebRequest并不會(huì)提交與他域名不同的cookie值,其實(shí)這也是正確,畢竟只需要發(fā)送本域cookie就是了,不過(guò)HttpWebRequest不會(huì)判斷是否是主域名的cookie值。比如說(shuō) 主站  www.ABC.com 有個(gè)cookie值為 test : 123123 domain:ABC.com 子站bbs.ABC.com 使用HttpWebRequest訪問的時(shí)候,就算添加了test這個(gè)cookie,它也是不會(huì)發(fā)送的。 Reflector .net的代碼后發(fā)現(xiàn),其添加cookie值的方法如下  if (httpWebRequest.CookieContainer != null) ...{ string str; httpWebRequest.Headers.RemoveInternal("Cookie"); string cookieHeader = httpWebRequest.CookieContainer.GetCookieHeader(httpWebRequest.Address, out str); if (cookieHeader.Length > 0) ...{ httpWebRequest.Headers["Cookie"] = cookieHeader; } } 這里可以看出,是通過(guò)地址得到cookie的值的,所以bbs.ABC.com只會(huì)發(fā)送domain=bbs.ABC.com的cookie值。 解決方法,強(qiáng)制把domian給改掉就可以了 | 
|  | 
來(lái)自: franklinfj > 《C#與網(wǎng)頁(yè)》