Sto costruendo un servizio web con Asp.net web api, e devo prendere un'immagine da una telecamera AXIS IP. La fotocamera, tuttavia, utilizza l'autenticazione del digest. Quindi il mio codice C# simile a questa:.NET WebClient invia la richiesta senza autenticazione prima
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");
Questa tutte le opere, ma quando si guarda Fiddler, ho scoperto che il client invia una richiesta senza autenticazione, e un 401 errore si ripresenta. Dopodiché invia quello con sicurezza digest.
ho trovato una soluzione con le credenziali manuali iniezione qui:
http://kristofmattei.be/2013/02/20/webclient-not-sending-credentials-heres-why/
Ma questo sembra sbagliato. Utilizza l'autenticazione di base, che non voglio davvero e sembra un po 'poco professionale.
C'è un modo per inviare la richiesta firmata immediatamente o è questo il modo che funziona perché sto notando che la fotocamera sta tornando il nonce nella prima richiesta?
Hai provato [Autenticazione HTTPS e Digest] (http://stackoverflow.com/a/1970990/580951) – Romoku
Beh, sì, il collegamento è simile, penso che tu stia dicendo di utilizzare le credenziali predefinite e quindi di impostare le credenziali esplicite , prova a impostarlo prima su false e poi vedi se funziona – Bearcat9425
Nessun cambiamento, dopo entrambi i consigli. –