程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> HttpWebRequest跨域cookie的訪問

HttpWebRequest跨域cookie的訪問

編輯:.NET實例教程

算算,有一個星期沒寫blog,自己最近也有些事情忙,而且也沒找到很有價值的東西寫,所以一直就拉著。最近工作上也沒有 特別煩惱的事,所以也就少了些生活感慨。

最近的一個小程序中,使用到HttpWebRequest,在對子域名訪問的時候,發現HttpWebRequest並不會提交與他域名不同的cookie值,其實這也是正確,畢竟只需要發送本域cookie就是了,不過HttpWebRequest不會判斷是否是主域名的cookIE值。比如說

主站  www.ABC.com 有個cookIE值為 test : 123123 domain:ABC.com

子站bbs.ABC.com 使用HttpWebRequest訪問的時候,就算添加了test這個cookIE,它也是不會發送的。

Reflector .Net的代碼後發現,其添加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;
            }
        }

這裡可以看出,是通過地址得到cookie的值的,所以bbs.ABC.com只會發送domain=bbs.ABC.com的cookIE值。

解決方法,強制把domian給改掉就可以了


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved