mañana,NSURLConnection, NSURLRequest, certificado no es de confianza y la autenticación de usuario
que he estado tratando de escribir una aplicación que hace algunas recibe de un servicio web remoto que requiere autenticación. Mi principal problema es que la mayoría de estos servidores remotos (y hay muchos de ellos) no tienen certificados válidos. Tengo code to accept the invalid certificate y código para responder al desafío con el pase correcto de uname & (abajo). El problema que tengo es conseguir que los dos jueguen juntos. Parece que no puedo encontrar la manera de enviar el desafío NSURLCredential
o una forma de encadenar las devoluciones de llamada correctamente. Cuando trato de encadenarlos no puedo obtener mi NSURLRequest
para llamar al didReceiveAuthenticationChallenge
dos veces.
¡Cualquier pensamiento sería apreciado!
Códigopara la autenticación ...
-(void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{
if(!hasCanceled){
if ([challenge previousFailureCount] == 0) {
NSURLCredential *newCredential;
newCredential=[NSURLCredential credentialWithUser:_username password:_password persistence:NSURLCredentialPersistenceNone];
[[challenge sender] useCredential:newCredential forAuthenticationChallenge:challenge];
}
else {
[[challenge sender] cancelAuthenticationChallenge:challenge];
NSLog(@"Bad Username Or Password");
badUsernameAndPassword = YES;
finished = YES;
}
}
}
Funcionó como un encanto. Es necesario implementar correctamente el método "canAuthenticateAgainstProtectionSpace" para que mi aplicación llame a este método. Pero después de eso todo está bien. ¡Gracias! – Staros