2010-09-20 11 views

Antwort

18

Ihr NSURLConnection Delegat sollte auf die Delegiertenmethode connection:didReceiveAuthenticationChallenge: reagieren (siehe Link unten).

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

Es indem er die Herausforderung für seinen ‚Absender‘ antworten sollte und es mit einem geeigneten Credential.

Etwas wie:

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

Sehen NSURLCredential Klassenreferenz für Details, wie eine Berechtigung zu erstellen, basierend auf einem Zertifikat:

+0

Habe ich recht, wenn ich sage, dass didReceiveAuthenticationChallenge jetzt veraltet ist? http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSURLConnectionDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intf/NSURLConnectionDelegate Kann mir jemand auf ein umfassenderes Beispiel für die Verwendung eines Client-Zertifikat zur Authentifizierung von Anfragen? – Rory

2

Bevor Client-Zertifikate in Ihrer App (wie bereits beantwortet Jake) müssen Sie den Import des Zertifikats in Ihrer App in Ihren App-Schlüsselbund implementieren. (Beachten Sie, dass Sie das PKCS # 12 Zertifikatformat verwenden müssen, aber Sie müssen es in Ihrer App registrieren (nach exportierten HWIs und Dokumenttypen suchen) mit einer anderen Erweiterung als ".p12", die bereits von iOS registriert ist habe .x-p12 in meiner App benutzt)

Oder du musst das Zertifikat mit deinem App-Bundle einbinden.

Siehe hier: iOS Client Certificates and Mobile Device Management

und hier: https://developer.apple.com/library/ios/qa/qa1745/_index.html

Verwandte Themen