私はAsp.net Web APIを使用してWebサービスを構築しており、AXIS IPカメラから画像を取得する必要があります。ただし、カメラではダイジェスト認証が使用されます。だから、私のC#のコードは次のようになります。.NET WebClientが認証なしで要求を最初に送信する
WebClient webClient = new WebClient();
webClient.UseDefaultCredentials = true;
webClient.Credentials = new NetworkCredential("***", "***");
byte[] imageStream = webClient.DownloadData("http://192.168.0.90/axis-cgi/jpg/image.cgi");
このすべての作品を、しかしフィドラーを見たとき、私は、クライアントが認証なしで一つのリクエスト、および401のエラーリターンを送ることがわかりました。その後、ダイジェストセキュリティ付きのものを送信します。
私はここで、マニュアルの資格情報を注入して解決策を見つけました:
http://kristofmattei.be/2013/02/20/webclient-not-sending-credentials-heres-why/
しかし、これは間違って見えます。それは基本的な認証を使用しています。私はそれが本当に欲しくなく、プロフェッショナルではないようです。
署名されたリクエストをすぐに送信する方法はありますか、それとも最初のリクエストでカメラがノンスを返すことに気付いているので、これはどのように動作しますか?
あなたは[HTTPS&ダイジェスト認証](http://stackoverflow.com/a/1970990/580951)を試しましたか? – Romoku
リンクは似ていますが、デフォルトの認証情報を使用して明示的な資格情報を設定するように指示していると思いますそれを最初にfalseに設定してから、それが動作するかどうかを確認してください。 – Bearcat9425
両方のアドバイスの後に変更はありません。 –