WebBrowserコントロールの認証ヘッダーの設定-ASP.NET

asp.net c# http-status-code-401 webbrowser-control
WebBrowserコントロールの認証ヘッダーの設定-ASP.NET

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などの他の詳細でヘッダーを設定する方法はありますか?

  7  1


ベストアンサー

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

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

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

4


タイトルとURLをコピーしました