7

asp.netアプリケーションでWebBrowserコントロールを使用して、Webページのスクリーンショットを生成しています。アプリケーションプールアカウントを変更するまで、イメージを生成できました。新しいアプリケーションプールに必要なすべての権限を付与し、IEから自分のページを閲覧できるようになりました。しかし、プログラムでWebブラウザー制御を介してナビゲートすると、401.2が表示されます。IIS 7.0で「失敗した要求トレースルール」を設定し、Fiddlerを使用して要求をスニッフィングしましたが、認証ヘッダーが正しくないことがわかりました。

ただし、webbrowser.navigateには、カスタムhttpヘッダーを渡すことができるオーバーロードされたメソッドがあります。どうすれば設定できますか?統合認証を使用したいだけで、コードにユーザー名/パスワードを指定したくないのは、わからない可能性があるためです。しかし、それでも私は運が悪かったので次のコードを試しました。

System.Uri uri = new Uri(myUrl);
byte[] authData = System.Text.UnicodeEncoding.UTF8.GetBytes("user: passwd");
string authHeader = "Authorization: Basic " + Convert.ToBase64String(authData) + "\r\n";
myBrowser.Navigate(uri, "", null, authHeader);

useragentなどの他の詳細でヘッダーを設定する方法について何かアイデアはありますか?

4

1 に答える 1

4

ヘッダーにユーザーエージェントを含めたい場合は、おそらく次のようにする必要があります。

string authHeader = "Authorization: Basic " + Convert.ToBase64String(authData) + 
        "\r\n" + "User-Agent: MyUserAgent\r\n";

各ヘッダーは、キャリッジリターンラインフィードペアで終了する必要があることに注意してください。

于 2011-06-09T13:46:47.957 に答える