1
在我的C#應用程序中,我使用HTTPWebrequest等瀏覽網站。 在某個時間點,我想在WebBrowser控件中顯示網站。C#應用程序中的InternetSetCookie不適用於子域名
當前Cookies保存在CookieContainer中。
以下代碼完美無缺,所有Cookie都是由瀏覽器在請求中發送的。
CookieCollection cookies = ck.GetCookies(new Uri("http://www.abcde.de"));
foreach (Cookie c in cookies) {
if (!InternetSetCookie("http://www.abcde.de", c.Name, c.Value))
throw new Exception("Exception setting cookie: Win32 Error code="
+ Marshal.GetLastWin32Error());
}
/** Setting header_infos, POST-Data etc **/
webBrowser1.Navigate(link, "_self", parameterbyte, header_infos.ToString());
但是,當我取回餅乾從一個子域像
CookieCollection cookies = ck.GetCookies(new Uri("http://ab.cde.de"));
因爲URL格式的「http://ab.cde.de」是無效的IntersetSetCookie函數拋出異常。當我嘗試「http://www.cde.de」或「http://www.ab.cde.de」,而不是我沒有得到例外,但網站無法正確加載,因爲瀏覽器只發送請求中的五個cookie中的一個,我不知道爲什麼。
你有什麼想法我可以解決這個問題嗎?
是的我已經想過這樣的事情。但是當InternetSetCookie(「http://abc.de」,...)不起作用時,我怎樣才能將cookie設置爲http://abc.de? – Michael 2012-04-19 22:23:33
在SO [相關問題](http://stackoverflow.com/questions/1189638/internet-explorer-xx-yy-website-problem)上。另請查看[本FAQ](http://blogs.msdn.com/b/ieinternals/archive/2009/08/20/wininet-ie-cookie-internals-faq.aspx),更詳細地解釋了這種行爲。 – 2012-04-19 22:41:08