コードで使用する IE 資格情報を取得するにはどうすればよいですか?
-
09-09-2019 - |
質問
現在、IEプラグインを開発中です。 SpicIE.
このプラグインは、MSDN に投稿された例と同様の Web スクレイピングを実行します。
WebRequest request = WebRequest.Create ("http://www.contoso.com/default.html");
request.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
Stream dataStream = response.GetResponseStream ();
StreamReader reader = new StreamReader (dataStream);
string responseFromServer = reader.ReadToEnd ();
reader.Close ();
dataStream.Close ();
response.Close ();
ただし、このコードを実行すると、次のエラー メッセージが表示されます。
リモート サーバーがエラーを返しました:(407) プロキシ認証が必要です。
私は現在プロキシサーバーの背後で作業しており、 ネットワーク資格情報 ネットワーク資格情報を手動で提供するクラス
request.Credentials = new System.Net.NetworkCredential("name", "password", "domain");
しかし、私はまだ同じエラーを受け取ります。
たとえ問題が解決したとしても、プラグインの一部のユーザーはプロキシ サーバーの背後にいることがわかっています。
IE 資格情報を取得し、それをコード内で使用して request.Credentials に割り当てる方法を知りたいです。.
おそらく次のようなものでしょう:
request.Credentials = IE.DefaultCredentials;
解決
の資格情報を設定しています。 サイト, ただし、認証情報が必要です。 プロキシ.
セット request.Proxy.Credentials
.
(また、使用します using
応答/ストリーム/リーダーのステートメントを手動で閉じるのではなく、手動で閉じる必要があります。そうしないと、例外がスローされたときにステートメントがリークします)。
編集:たとえば、プロキシにもデフォルトの資格情報を使用するには、次のようにします。
request.Proxy.Credentials = CredentialCache.DefaultCredentials;
所属していません StackOverflow