C#应用程序中的InternetSetCookie不';无法处理子域

C#应用程序中的InternetSetCookie不';无法处理子域,c#,cookies,browser,webclient,webrequest,C#,Cookies,Browser,Webclient,Webrequest,在我的C#应用程序中,我使用HTTPWebrequest等在一个网站上导航。 在某一点上,我想在WebBrowser控件中显示网站 当前cookie保存在CookieContainer中 下面的代码非常完美,所有cookie都是通过浏览器在请求中发送的 CookieCollection cookies = ck.GetCookies(new Uri("http://www.abcde.de")); foreach (Cookie c in cookies) { if (!InternetS

在我的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"));
INTERSETSETCOKIE函数引发异常,因为URL格式“”无效。当我尝试使用“”或“”时,不会出现异常,但网站无法正确加载,因为浏览器只发送请求中五个cookie中的一个,我不知道为什么


你知道我怎么解决这个问题吗

我认为这种行为是出于安全原因故意的。子域上的站点可以托管在与主域上的站点完全不同的人管理的完全不同的服务器上。Cookie可能包含敏感信息,因此web浏览器会阻止将其发送到另一个(子)域。

是的,我已经想到过类似的事情。但是,当InternetSetCookie(“)不工作时,我如何将Cookie设置为?请参阅下面的内容。还要检查哪些内容更详细地解释了此行为。