Sto provando a leggere l'origine da una pagina che richiede l'autenticazione di base. Tuttavia, utilizzando un'intestazione e anche credenziali nella mia HttpWebRequest, ottengo ancora un'eccezione non autorizzata [401] restituita.Invio dell'autenticazione di base su http
string urlAddress = URL;
string UserName = "MyUser";
string Password = "MyPassword";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlAddress);
if (UserName != string.Empty)
{
string encoded = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(UserName + ":" + Password));
request.Headers.Add("Authorization", "Basic " + encoded);
System.Net.CredentialCache credentialCache = new System.Net.CredentialCache();
credentialCache.Add(
new System.Uri(urlAddress), "Basic", new System.Net.NetworkCredential(UserName, Password)
);
request.Credentials = credentialCache;
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); //<== Throws Exception 401
Fiddler Auth Risultati
No Proxy-Authenticate intestazione è presente.
WWW-Authenticate intestazione è presente: Basic realm = "example"
Non so quale versione di .NET si sta utilizzando attualmente, ma ti suggerisco di iniziare a utilizzare 'HttpClient';) –
Confrontare l'intestazione Autorizzazione dalla richiesta all'intestazione Autorizzazione di una richiesta che non restituire 401. – CodeCaster
@CodeCaster: installerò il violinista e pubblicherò i risultati –