Frage

Ich habe eine Website auf IIS gehostet mit Windows-Authentifizierung. Ich versuche es Web-Anwendung in einem meiner iPhone zugreifen. Derzeit ich diesen Code verwende, aber es funktioniert nicht.

NSString * authString = [[[NSString string: @ "% @:% @", @ "myusername" @ "mypassword"] dataUsingEncoding: NSUTF8StringEncoding] base64Encoding];

authString = [NSString stringWithFormat: @"Basic %@", authString];

**[requestObj setValue:authString forHTTPHeaderField:@"Authorization"];**

mein Web-App ist mit Windows-Authentifizierung statt. aber hier bin ich mit Grund. kann jemand nach, was die korrekten HTTP-Header für es ist.

Danke ..

War es hilfreich?

Lösung

Ich denke, der Hauptunterschied ist, dass Sie die Domäne angeben, müssen Sie gegen sowie den Benutzernamen und das Passwort zu authentifizieren. So etwas sollte funktionieren. Ich habe eine synchrone Anforderung der Kürze halber verwendet, im Idealfall sollten Sie eine ASINetworkQueue oder NSOperationQueue verwenden, um die Anfrage auszuführen.

NSString *username = @"test";
NSString *password = @"test";
NSString *domain = @"test";
NSURL *url = [NSURL URLWithString:@"http://myurl"];
ASIHTTPRequest *request = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease];
[request setUseSessionPersistence:YES];
[request setUsername:username];
[request setPassword:password];
[request setDomain:domain];
[request start];
if ([request error]) {
    if ([[request error] code] == ASIAuthenticationErrorType) {
        //Authentication failed
    }
} else {
    NSLog([request responseString]);
}

Ich habe keinen Zugriff auf einen Windows-Server dies zu testen, aber ich habe NTLM in der Vergangenheit getestet, so sollte es funktionieren ...:)

Andere Tipps

Windows-Authentifizierung (NTLM) ist nicht so einfach wie die Standardauthentifizierung. NTLM erfordert mehr als eine webrequest um die Sicherheit zu verhandeln, so gibt es keine statischen HTTP-Header ist, dass Sie senden können eingeloggt sein.

Sie können die Drittanbieter ASIHTTPRequest Bibliothek NTLM über HTTP Authentifizierung.

Ich bin nicht 100% sicher, dass es unterstützt NTLM-Authentifizierung, aber Sie haben die connection:didReceiveAuthenticationChallenge Methode auf dem NSURLConnection suchen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top