2009-04-17 3 views
1

In meiner iPhone App versuche ich ein Bild auf dem iPhone von meinem Server anzuzeigen, der eine Autorisierung benötigt. Ich versuche, NSURLConnection zu verwenden, um das Bild zu erhalten, aber es fragt mich nicht nach den Benutzeranmeldeinformationen. es geht überhaupt nicht um die Methode didReceiveAuthenticationChallenge. Kann mir jemand bei diesem Problem helfen?HttpBasicAuthentication in IPhone

+0

Geben Sie Ihren Code ein, wenn Sie Hilfe benötigen. – Jordan

Antwort

0

Da Sie keinen Code veröffentlichen, ist es schwer zu sagen. Ich würde überprüfen, und überprüfen Sie, ob Sie das Delegat ordnungsgemäß in NSURLConnection festgelegt haben. Wenn dies nicht der Fall ist, versuchen Sie es mit einem HTTP-Debugger und stellen Sie sicher, dass die URL tatsächlich die Authentifizierungsanfrage auslöst.

6

Sie können ihnen die notwendigen Authorization-Header berechnen und manuell an den scheidenden NSURLRequest anwenden, bevor die NSURLConnection erstellen, wie in:

NSMutableURLRequest *someURLReq = ... 
NSString *auth = ... 
[someURLReq setValue:auth forHTTPHeaderField:@"Authorization"]; 

Der Inhalt der auth im Fall von HTTP-Basic-Authentifizierung, mit Dave Dribin's base64 NSData category wäre:

NSString *username = ... 
NSString *password = ... 
NSString *combo = [NSString stringWithFormat:@"%@:%@", username, password]; 
NSData *comboData = [NSData dataWithBytes:[combo UTF8String] length:combo.length]; 
NSString *auth = [NSString stringWithFormat:@"Basic %@", [comboData encodeBase64]]; 

Beachten Sie, dass dies keine Verschlüsselung ist, wird das Passwort ist Klartext für alle praktischen Zwecke, und schnupperte werden, wenn Sie auf eine SSL-Verbindung sind.

+0

Hallo .. Danke für Ihre Antwort .... Ich habe eine Webanwendung auf IIS mit Windows-Authentifizierung gehostet. Jetzt versuche ich auf die Seiten dieser Web-App zuzugreifen. Mit deinem Code funktioniert es nicht. Es gibt unauthorised Fehler zurück. Muss ich den NTML/Digest-Authentifizierungsmodus verwenden? – nbojja