Depuis que je suis nouveau à la programmation iPhone, je veux faire quelque chose comme ça: Dans l'écran principal de mon application, je demande un nom d'utilisateur et mot de passe et autorise l'utilisateur. . Dans cet écran principal, il y a un contrôleur de commutation "Se souvenir de moi" afin que l'application se souvienne de l'utilisateur la prochaine fois qu'il lance l'application. Mes questions sont: 1. comment puis-je appeler les services web .net dans l'iPhone? 2. Comment puis-je conserver ces informations de nom d'utilisateur et de mot de passe (comme les cookies dans l'application Web), de sorte que l'utilisateur ne soit pas invité à fournir des informations d'identification? j'apprécierais vraiment, merci.persistance des informations d'identification dans l'iPhone
Répondre
- vous utilisez NSMutableURLRequest pour générer une demande de services Web
- utilisation NSUserDefaults persister le nom d'utilisateur et mot de passe
Voici un exemple de la première:
-(void)sendUpdate {
User *user = [User sharedManager];
NSData *parkedLocation = [[NSString stringWithFormat:@"<location><latitude>%f</latitude><longitude>%f</longitude><userid>%@</userid><udid>%@</udid></location>",
coordinate.latitude, coordinate.longitude, userid, user.udid] dataUsingEncoding:NSASCIIStringEncoding];
//NSLog("parkedlocation = %@", parkedLocation);
NSString *URLstr = LOCATIONS_URL;
if (controller.put_url)
URLstr = controller.put_url;
NSURL *theURL = [NSURL URLWithString:URLstr];
//NSURLRequest *theRequest = [NSURLRequest requestWithURL:theURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10.0];
NSLog(@"IN SEND UPDATE put_url = %@", controller.put_url);
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:theURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10.0];
if (controller.put_url) {
[theRequest setHTTPMethod:@"PUT"];
} else {
[theRequest setHTTPMethod:@"POST"];
}
[theRequest setValue:@"text/xml" forHTTPHeaderField:@"Content-type"];
[theRequest setHTTPBody:parkedLocation];
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:TRUE];
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
if (!theConnection) {
NSLog(@"COuldn't get a connection to the iParkNow! server");
}
}
et un exemple de la seconde:
[[NSUserDefaults standardUserDefaults] setObject:self.userName.text forKey:@"Username"];
[[NSUserDefaults standardUserDefaults] setObject:self.password.text forKey:@"Password"];
Vous avez deux choix: Préférences utilisateur ou Données de base. Les deux sont capables - Core Data pourrait être exagéré.
je devrais étudier sur les données de base.Je pense que ce sera dur mais très sympa ... – molloy
NSURLRequest peut être utilisé pour récupérer des URL telles que votre service d'authentification. Et NsUserDefaults peut être utilisé pour enregistrer les paramètres entre les invocations app.
Remarque: Découvrez l'exemple génial d'ennuikiller.
informations d'identification utilisateur Persistance
Si vous enregistrez un nom d'utilisateur et mot de passe, vous devez utiliser le trousseau. L'utilisation du Keychain sur iPhone est similaire à Keychain sur Mac.
Pour utiliser Keychain import "Security/Security.h".
Apple a un exemple here d'ajouter et de récupérer un nom d'utilisateur et mot de passe dans leur documentation. Les exemples de méthodes
- (void)mySetObject:(id)inObject forKey:(id)key;
- (id)myObjectForKey:(id)key;
- (void)resetKeychainItem;
vous permettront de conserver et d'extraire vos informations d'identification sans modifier l'exemple de code.
Appel webservices qui nécessitent une authentification
Selon vous système d'authentification, vous pouvez soit
- fournissent le nom d'utilisateur et mot de passe directement en tant que paramètres dans l'URL en utilisant
NSURLConnection
- fournir une méthode
didReceiveAuthenticationChallenge
dans votreNSURLConnection
délégué si votre service Web utilise le schéma "Authentification de base"
- 1. GAE Chat Persistance des données dans Memcache
- 2. Problème de persistance des cookies dans IE
- 3. Persistance des données dans les applications iPhone
- 4. AIR 2 - Persistance des données?
- 5. Persistance des données WCF entre les sessions
- 6. Persistance des paramètres de texture
- 7. Asp.Net/C# persistance des variables statiques
- 8. exception dans la requête persistance
- 9. Persistance des expressions linq d'exécution différée
- 10. Persistance des ressources de fichiers en PHP
- 11. Sérialisation des Winforms MDI pour la persistance
- 12. persistance des valeurs de case à cocher
- 13. Persistance des données avec BufferedReader et PrintWriter?
- 14. Meilleure façon dans VB.Net d'utiliser des génériques pour My.Settings Persistance?
- 15. Persistance basée sur la priorité?
- 16. Lecteurs/écrivains et persistance découplée des classes dérivées
- 17. GWT + Persistance des objets + Maintien des données en mémoire
- 18. persistance combobox VB.NET?
- 19. persistance persistance avec mysql, impossible d'obtenir l'instance de processus
- 20. iPhone UIImage - Data Persistance
- 21. Variable Persistance dans la liste chaînée
- 22. ASP.NET web.config appsettings persistance
- 23. Activités Android UI persistance
- 24. WF4: Persistance et DTC
- 25. "Les activités de persistance ne peuvent être contenues dans aucun bloc de persistance" erreur
- 26. Service de persistance SQL
- 27. ActiveMQ sans persistance
- 28. Concept de stockage des informations dans Jquery
- 29. Stockage des informations ecoded dans mysql
- 30. Trouvez des informations dans une table
merci pour votre réponse urgente. Je vais l'essayer. – molloy
Je recommande d'utiliser keychain pour stocker les informations d'identification de l'utilisateur, il y a un lien vers l'exemple dans un autre commentaire. –