Buduję serwis internetowy z interfejsem webowym Asp.net i muszę pobrać obraz z kamery IP AXIS. Aparat wykorzystuje jednak uwierzytelnianie Digest. Więc mój kod C# wygląda mniej więcej tak:.NET WebClient wysyła żądanie bez uwierzytelnienia najpierw
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");
To wszystko działa, ale kiedy patrzy na Skrzypek, stwierdziliśmy, że klient wysyła jedno żądanie bez uwierzytelniania, a 401 zwraca błąd. Następnie wysyła wiadomość z szyfrowanym zabezpieczeniem.
Znalazłem rozwiązanie z ręczną poświadczeń zastrzyku tutaj:
http://kristofmattei.be/2013/02/20/webclient-not-sending-credentials-heres-why/
Ale wygląda to źle. Wykorzystuje podstawowe uwierzytelnianie, którego naprawdę nie chcę i wygląda trochę nieprofesjonalnie.
Czy jest jakikolwiek sposób na natychmiastowe przesłanie podpisanego wniosku lub czy to działa, ponieważ zauważyłem, że kamera zwraca numer jednorazowy w pierwszym żądaniu?
Czy próbowałeś [HTTPS i Digest Authentication] (http://stackoverflow.com/a/1970990/580951) – Romoku
No tak, ten link jest podobny, myślę, że mówisz mu, aby używał domyślnych poświadczeń, a następnie ustawiając jawne poświadczenia , spróbuj najpierw ustawić na false, a następnie sprawdź, czy działa – Bearcat9425
Bez zmian, po obu wskazówkach. –