私のC#アプリケーションでは、HTTPWebrequestなどを使用してウェブサイトをナビゲートしています。 WebブラウザーコントロールにWebサイトを表示する必要があります。C#アプリケーションのInternetSetCookieがサブドメインで動作しない
現在の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());
しかし、私は
CookieCollection cookies = ck.GetCookies(new Uri("http://ab.cde.de"));
などのサブドメインからのCookieを取得する際に有効ではありません「http://ab.cde.de」URL-書式のでIntersetSetCookie機能が例外をスローします。 「http://www.cde.de」または「http://www.ab.cde.de」を試してみると、例外が表示されませんが、ブラウザがリクエスト内の5つのCookieのうちの1つのみを送信し、理由を知らないため、Webサイトが正しく読み込まれません。
私はこれをどのように修正できるか考えていますか?
ええ私はすでにそのようなことを考えていました。しかし、InternetSetCookie( "http://abc.de"、...)が動作しない場合、どのようにしてhttp://abc.deにCookieを設定できますか? – Michael
そこに[関連する質問](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)もチェックしてください。 –