在我的C#应用程序中,我使用HTTPWebrequest等浏览网站。 在某一点上,我想在WebBrowser控件中显示网站。
当前Cookie保存在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());
但是当我从
这样的子域中检索Cookie时CookieCollection cookies = ck.GetCookies(new Uri("http://ab.cde.de"));
IntersetSetCookie函数抛出异常,因为URL格式“http://ab.cde.de”无效。当我尝试“http://www.cde.de”或“http://www.ab.cde.de”时,我没有得到例外,但网站没有正确加载,因为浏览器只发送请求中的五个cookie中的一个而我不知道原因。
你知道我怎么解决这个问题吗?
答案 0 :(得分:0)
我认为出于安全原因,这种行为是故意的。子域上的站点可以托管在完全不同的服务器上,该服务器由与主域上的站点完全不同的人管理。 Cookie可能包含敏感信息,因此Web浏览器会阻止将其发送到另一个(子)域。