2010-12-10 9 views
0

シナリオ:WebブラウザコントロールはCookieを作成できません。

Webブラウザーコントロールを使用してWebページのスナップショットイメージを取得するWebアプリケーション(SnapshotServer)があります。

SnapshotServer内のWebブラウザーコントロールを使用して、セキュリティで保護されたWebアプリケーション(ImageHost)の入力ページに移動し、必要なページにリダイレクトします。 ImageHostアプリケーションは、Cookieを使用するFormsAuthenticationによって保護されています。私がナビゲートするエントリーページは私のログインを管理し、認証クッキーを作成します。

ImageHostから応答が生成されると、WebBrowserコントロール内の結果がイメージに変換されます。

問題:

私はIIS7を使用して、私のPC(Windows 7の、IE8)でSnapshotServer実行し、私の開発サーバ(Windows 2008のR2、IE8)にImageHostに移動すると、必要に応じ、結果は - I ImageHostにログインし、私がイメージしたいページにリダイレクトされました。 IIS7を使用している任意のWindows 2008 R2サーバーでSnapshotServerを実行し、開発サーバー(Windows 2008 R2、IE8)でImageHostに移動すると、結果は必要ありません - ImageHostはログインできません - ログインページ。ログインに失敗した理由は、認証Cookieを作成していないからです。

誰かがWebBrowserコントロールをWindows 2008サーバーから実行したときにCookieを作成できない理由を教えてもらえますか?

答えて

3

まず、Windows版、IIS版、IE版とは関係ありません。

これは、Windows 2008のIEのセキュリティ上の問題に関連する可能性があります。インターネットオプションを確認し、Cookieを有効にしてください(無効になっていると思われる場合)。

また、あなたは、このようにクッキーのコンテナを使用するようにWebBrowserコントロールを強制することができます。

public partial class WebBrowserControl : Form 
{ 
    private String url; 

    [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)] 
    public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData); 

    public WebBrowserControl(String path) 
    { 
      this.url = path; 
      InitializeComponent(); 

      // set cookie 
      InternetSetCookie(url, "JSESSIONID", Globals.ThisDocument.sessionID); 

      // navigate 
      webBrowser.Navigate(url); 
    } 
} 

これらは

+0

が、それは、Webブラウザコントロール内にこれを作成することが可能ですあなたの問題解決する必要がありますか? – Euclid

+0

はい、上のコードはその目的のためだけです:) – EBAG

+1

このエラーが発生していますグローバルは現在のコンテキストに存在しません。 –

関連する問題