Ho bisogno di inviare un HttpWebRequest a un URL con le credenziali in linea di base come segue:Creare un HttpWebRequest per un http: // utente: password @ doamin/interrogazione URL
http://user:[email protected]/query
Ho provato a installare l'URL come è, ma non sembrava passare le credenziali (ottenuto 403).
provato impostando la proprietà Credenziali di HttpWebRequest:
request.Credentials = new NetworkCredentials("username","pasword")
e rimuovendole dal url (con conseguente http://domain/query
), ma ancora ottenuto lo stesso risultato (403).
L'utilizzo dell'URL direttamente da qualsiasi browser è riuscito in modo che le credenziali siano corrette.
Cosa mi manca?
[AGGIORNAMENTO - RISPOSTA]
Ecco il codice che ha funzionato per me:
string credentials = "username:password";
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(formattedUrl);
request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes(credentials)));
request.PreAuthenticate = true;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Ho provato il codice suggerito, ma non ha funzionato. Osservando la richiesta con Fiddler, non vedo le credenziali inviate ... – sternr
Nota interessante, l'Uri che creo usa la seguente struttura: "http://www.dominio.com", cercando di creare un Uri senza http: // prefisso non riuscito – sternr