2010-01-15 3 views
2

Comment puis-je gérer des sessions utilisateur dans une application iPhone? Je reçois un nom d'utilisateur et un mot de passe de l'utilisateur sur la première page de mon application. L'utilisateur peut se déconnecter quand il veut. Comment puis-je stocker des informations de session dans une application iPhone comme toute autre application Web? Y a-t-il une autre technique pour ça? merci.gestion de session iphone

+0

Pouvez-vous être plus précis, s'il vous plaît? Voulez-vous dire une session de service Web à laquelle votre application se connecte? Voulez-vous dire "quitter" en se déconnectant? Avez-vous regardé dans NSUserDefaults? – Costique

+0

Développez-vous une application html uniquement? – TechZen

+1

J'ai été devloping iphone app, pas iphone web app. Lorsque l'utilisateur se connecte à mon application (en soumettant son nom d'utilisateur et son mot de passe), je stocke ses informations d'identification en utilisant NSUSerDefaults. Mais l'utilisateur peut se déconnecter chaque fois qu'il appuie sur le bouton de déconnexion. Alors, que dois-je faire quand il appuie sur le bouton de déconnexion. Et comment dois-je vérifier les informations de session utilisateur dans chaque page de l'application. Suis-je suffisamment clair? Brièvement, comment puis-je gérer le mécanisme de contrôle de session de l'utilisateur (comme dans un projet web standart) dans l'application iphone (je développe l'application basée sur la fenêtre iphone, pas iphone web proect). merci. – molloy

Répondre

2

Vous pouvez appeler NSUserDefaults à partir de n'importe où dans votre application. C'est généralement là que les informations d'état sont stockées.

Si vous pensez que vous pourriez avoir à stocker des informations pour un grand nombre d'utilisateurs, vous devez créer une base de données personnalisée et ne compter que sur. La façon la plus simple de le faire est d'utiliser Core Data. Vous pouvez parquer le contexte de l'objet géré dans le délégué de l'application, puis y accéder de n'importe où en appelant le délégué de l'application.

Je vous préviens qu'une application iPhone a un motif de conception différent d'une application Web. Vous ne devriez pas penser en termes de pages et de sessions, sauf si vous implémentez une interface Web.

+1

bonjour, qu'en est-il du porte-clés pour stocker username/passwprd? Je veux dire, j'ai 4 contrôleur de vue et je veux utiliser la session dans tous les contrôleurs. Comment puis je faire ça? NSUserDefaults OU Keychain? –

0

vous pouvez enregistrer les informations nom d'utilisateur sur NSUserDefaults

-(void)saveToUserDefaults:(NSString*)myString 
{ 
    NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults]; 

    if (standardUserDefaults) { 
     [standardUserDefaults setObject:myString forKey:@"username"]; 
     [standardUserDefaults synchronize]; 
    } 
} 

si vous avez des informations de nom d'utilisateur sur NSUserDefaults, vous pouvez obtenir vos informations de nom d'utilisateur

-(NSString*)retrieveFromUserDefaults 
{ 
    NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults]; 
    NSString *val = nil; 

    if (standardUserDefaults) 
     val = [standardUserDefaults objectForKey:@"username"]; 

    return val; 
} 

utilisant:

NSString * username=[self retrieveFromUserDefaults:@"username"]; 
if (!([username length]==0)||![username isEqualToString:@""]) 
{ 
NSLog(@"no authentication and redirect authentication page "); 
} 
else 
{ 
NSLog(@"it's authentication!"); 
}