2010-09-20 20 views

Répondre

18

Votre délégué NSURLConnection doit répondre à la méthode de délégué connection:didReceiveAuthenticationChallenge: (voir le lien ci-dessous).

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

Il doit répondre en posant le défi de son « émetteur » et de lui transmettre un diplôme approprié.

Quelque chose comme:

- (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]; 
} 

Voir la référence de classe NSURLCredential pour plus de détails sur la façon de créer un titre basé sur un certificat:

+0

Ai-je raison de dire que didReceiveAuthenticationChallenge est maintenant obsolète? http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSURLConnectionDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intf/NSURLConnectionDelegate Quelqu'un peut-il me diriger vers un exemple plus complet d'utilisation d'un CERT client pour authentifier les demandes? – Rory

2

Avant d'utiliser des certificats clients dans votre application (comme cela a déjà répondu par Jake) vous devez implémenter l'importation de certificat dans votre application à votre trousseau d'application. (Notez que vous devez utiliser le format de certificat PKCS # 12, mais vous devez l'enregistrer dans votre application (recherche d'UTI et de types de documents exportés) avec une extension différente, autre que ".p12", déjà enregistrée par iOS. 'ai utilisé .x-p12 dans mon application)

Ou vous devez inclure le certificat avec votre ensemble d'applications.

Voir ici: iOS Client Certificates and Mobile Device Management

et ici: https://developer.apple.com/library/ios/qa/qa1745/_index.html