1

私の C# アプリケーションでは、HTTPWebrequest などを使用して Web サイトをナビゲートしています。特定の時点で WebBrowser コントロールに Web サイトを表示したいと考えています。

現在の 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"));

URL 形式 " http://ab.cde.de " が有効でないため、IntersetSetCookie 関数は例外をスローします。「 http://www.cde.de」または「http://www.ab.cde.de 」を代わりに試してみると、例外は発生しませんが、ブラウザーは次のいずれかのみを送信するため、Web サイトは正しく読み込まれません。リクエストに 5 つの Cookie が含まれていますが、その理由はわかりません。

どうすればこれを修正できるか分かりますか?

4

1 に答える 1

0

この動作はセキュリティ上の理由から意図的なものだと思います。サブドメイン上のサイトは、メインドメイン上のサイトとはまったく異なる人によって管理されている完全に異なるサーバーでホストされる可能性があります。Cookieには機密情報が含まれている可能性があるため、WebブラウザはCookieを別の(サブ)ドメインに送信しないようにします。

于 2012-04-19T20:50:21.013 に答える