Hallo,
ich muss mich mit meiner App auf einem Web-Server per NSURLConnection/ POST anmelden.
Das funktionierte bis jetzt ohne Probleme.
Lag sicher daran, dass bis jetzt kein "wildes" Passwort verwendet wurde.
Jetzt hat doch tatsächlich ein Kunde ein sicheres Passwort und kann sich über die App nicht einloggen.
Das Passwort besteht unter anderem aus solchen Zeichen:
Ich habe jetzt testweise einen User angelegt und genau das obige Passwort vergeben um das mal zu testen.
Das Passwort gebe ich in meiner App in einem UITextField per "Copy und paste" ein. (macht der Kunde genau so)
Auf dem Server habe ich das in einer Weboberfläche des Servers getestet. Es funktioniert.
Ich hab mir dann gedacht, dass ich die Zeichen bestimmt noch für den POST "wandeln" muss und mache das wie folgt:
der String sieht dann so aus: %7C%25%3C%22%3E%7B%7D%C2%A5%5E~
und versuche dann den login:
Alles anzeigen
Tja, was soll ich sagen? Mit einfachen Passwörtern funktioniert es. mit dem komplexeren Passwort funktioniert es nicht.
Hat jemand eine Idee was ich falsch mache?
ich muss mich mit meiner App auf einem Web-Server per NSURLConnection/ POST anmelden.
Das funktionierte bis jetzt ohne Probleme.
Lag sicher daran, dass bis jetzt kein "wildes" Passwort verwendet wurde.
Jetzt hat doch tatsächlich ein Kunde ein sicheres Passwort und kann sich über die App nicht einloggen.
Das Passwort besteht unter anderem aus solchen Zeichen:
Ich habe jetzt testweise einen User angelegt und genau das obige Passwort vergeben um das mal zu testen.
Das Passwort gebe ich in meiner App in einem UITextField per "Copy und paste" ein. (macht der Kunde genau so)
Auf dem Server habe ich das in einer Weboberfläche des Servers getestet. Es funktioniert.
Ich hab mir dann gedacht, dass ich die Zeichen bestimmt noch für den POST "wandeln" muss und mache das wie folgt:
der String sieht dann so aus: %7C%25%3C%22%3E%7B%7D%C2%A5%5E~
und versuche dann den login:
C-Quellcode
- NSString *userName = self.usernameOutlet.text;
- NSString *userPassword = self.passwordOutlet.text;
- NSString *escapedString = [self.passwordOutlet.text stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLHostAllowedCharacterSet]];
- userPassword = escapedString;
- NSString *post = [NSString stringWithFormat:@"login=%@&password=%@",userName,userPassword];
- NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
- NSString *postLength = [NSString stringWithFormat:@"%lu",(unsigned long)[postData length]];
- NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
- [request setURL:[NSURL URLWithString:@"http://XXXXXXXX/login"]];
- [request setHTTPMethod:@"POST"];
- [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
- [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
- [request setHTTPBody:postData];
- NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
Tja, was soll ich sagen? Mit einfachen Passwörtern funktioniert es. mit dem komplexeren Passwort funktioniert es nicht.
Hat jemand eine Idee was ich falsch mache?
Ich habe auch keine Loesung, aber ich bewundere das Problem!
_____________________________________________________
Hape42
_____________________________________________________
Hape42
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von hape42 () aus folgendem Grund: Tippfehler