que estoy tratando de entrar en mi aplicación web utilizando HttpWebRequest pero me siguen dando el siguiente error:401 no autorizado volvieron a petición GET (https) con credenciales correctas
System.Net.WebException: The remote server returned an error: (401) Unauthorized.
violinista tiene el siguiente resultado:
Result Protocol Host URL
200 HTTP CONNECT mysite.com:443
302 HTTPS mysite.com /auth
401 HTTP mysite.com /auth
Esto es lo que estoy haciendo:
// to ignore SSL certificate errors
public bool AcceptAllCertifications(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certification, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors)
{
return true;
}
try
{
// request
Uri uri = new Uri("https://mysite.com/auth");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri) as HttpWebRequest;
request.Accept = "application/xml";
// authentication
string user = "user";
string pwd = "secret";
string auth = "Basic " + Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(user + ":" + pwd));
request.Headers.Add("Authorization", auth);
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);
// response.
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
// Display
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
Console.WriteLine(responseFromServer);
// Cleanup
reader.Close();
dataStream.Close();
response.Close();
}
catch (WebException webEx)
{
Console.Write(webEx.ToString());
}
soy capaz de iniciar sesión en el mismo sitio sin ningún problema usando ASIHTTPRequest en una aplicación de Mac como esto:
NSURL *login_url = [NSURL URLWithString:@"https://mysite.com/auth"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:login_url];
[request setDelegate:self];
[request setUsername:name];
[request setPassword:pwd];
[request setRequestMethod:@"GET"];
[request addRequestHeader:@"Accept" value:@"application/xml"];
[request startAsynchronous];
Eso es lo que intenté al principio, y sigo teniendo 401. La única diferencia es que Fiddler dice que no hay encabezados de autorización presentes en la solicitud. – David
¿Está seguro de que el nombre de usuario y la contraseña que está utilizando son idénticos a las credenciales que está utilizando en la aplicación Mac? –
sí, estoy absolutamente seguro. ¿hay otra biblioteca como webrequest que pueda probar? – David