2010-09-20 12 views

Respuesta

18

Su NSURLConnection delegado debe responder al método connection:didReceiveAuthenticationChallenge: delegado (ver enlace más abajo).

http://developer.apple.com/library/ios/documentation/cocoa/reference/foundation/Classes/NSURLConnection_Class/Reference/Reference.html#//apple_ref/occ/instm/NSObject/connection:didReceiveAuthenticationChallenge:

Debe responder preguntando al desafío por su 'emisor' y dotándolo de una credencial apropiada.

Algo así como:

- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge { 
    id sender = [challenge sender]; 

    // create a credential from a certificate 
    // see doco for details of the parameters 
    NSURLCredential *creds = [NSURLCredential credentialWithIdentity:ident certificates:certs persistence:persistence]; 

    [sender useCredential:creds forAuthenticationChallenge:challenge]; 
} 

Véase el NSURLCredential referencia de clase para los detalles de cómo crear una credencial basada en un certificado:

+0

¿Tengo razón al decir que didReceiveAuthenticationChallenge ahora está en desuso? http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSURLConnectionDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intf/NSURLConnectionDelegate ¿Alguien me puede indicar un ejemplo más completo del uso de un certificado del cliente para autenticar las solicitudes? – Rory

2

Antes de utilizar certificados de cliente en su aplicación (como ya se ha contestado por Jake) tienes que implementar la importación de certificado dentro de tu aplicación al llavero de tu aplicación. (tenga en cuenta que necesita utilizar el formato de certificado PKCS # 12, pero debe registrarlo en su aplicación (busque UTI exportadas y tipos de documentos) con una extensión diferente, distinta de ".p12", que ya está registrada en iOS. he utilizado .x-p12 en mi aplicación)

O necesita incluir el certificado con su paquete de aplicaciones.

Ver aquí: iOS Client Certificates and Mobile Device Management

y aquí: https://developer.apple.com/library/ios/qa/qa1745/_index.html

Cuestiones relacionadas