NSURLConnection, NSURLRequest, nicht vertrauenswürdiges Zertifikat und Benutzerauthentifizierung

8

Morgen jeder,

Ich habe versucht, eine Anwendung zu schreiben, die einige GETs von einem Remote-Webdienst ausführt, der eine Authentifizierung erfordert. Mein Hauptproblem ist, dass die Mehrheit dieser Remote-Server (und es gibt viele von ihnen) keine gültigen Zertifikate haben. Ich habe Code, um das ungültige Zertifikat zu akzeptieren und Code, um auf die Herausforderung mit dem korrekten uname & amp reagieren; pass (unten). Das Problem, das ich habe, ist, dass die beiden zusammen spielen. Ich kann keinen Weg finden, die Herausforderung sowohl NSURLCredential s als auch eine Möglichkeit zu senden, die Rückrufe korrekt zu verketten. Wenn ich versuche, sie zu verketten, kann ich mein NSURLRequest nicht zweimal didReceiveAuthenticationChallenge aufrufen.

Irgendwelche Gedanken würden geschätzt werden!

Code für die Authentifizierung ...

%Vor%     
Staros 01.06.2010, 12:16
quelle

1 Antwort

9

Sie können nur auf eine NSURLAuthenticationChallenge mit einem Berechtigungsnachweis für diese Herausforderung antworten. Sie können bestimmen, welche Art von Challenge Sie erhalten haben:

%Vor%

Die möglichen Werte sind hier dokumentiert . Bei einem ungültigen Serverzertifikat lautet die Authentifizierungsmethode NSURLAuthenticationMethodServerTrust . In Ihrem Code sollten Sie die Authentifizierungsmethode überprüfen und entsprechend reagieren.

%Vor%

Es ist kein Fehler, wenn Sie nicht jedes Mal beide Authentifizierungsprobleme bekommen. Sie können Anmeldeinformationen zwischenspeichern, wenn Sie sie erstellen. Wenn Sie dies tun, werden Sie nicht unbedingt erneut dazu aufgefordert.

    
Alex 01.06.2010, 13:55
quelle