2010-01-15 131 views
2

如何在iPhone应用程序中管理用户会话?我在应用程序的第一页上获取用户的用户名和密码。用户可以随时注销。如何将会话信息存储在iPhone应用程序中,就像任何其他Web应用程序一样?还有其他技术吗? 谢谢。iphone会话管理

+0

请问您具体吗?你的意思是你的应用程序连接到的Web服务会话?你的意思是退出后退出吗?你看过NSUserDefaults吗? – Costique 2010-01-15 10:41:38

+0

你正在开发一个仅适用于html的应用程序吗? – TechZen 2010-01-15 13:28:57

+1

我一直devloping iphone应用程序,而不是iPhone的网络应用程序。当用户登录我的应用程序(提交他的用户名和密码)时,我使用NSUSerDefaults存储他们的凭据。但是,用户可以在他点击注销按钮时注销。那么,当他点击注销按钮时我应该怎么做。我应该如何检查应用程序的每个页面中的用户会话信息。我足够清楚了吗?简而言之,我如何处理iphone应用程序中的用户会话控制机制(比如在一个标准的web项目中)(我正在开发基于iphone的基于窗口的应用程序,而不是iphone web proect)。 谢谢。 – molloy 2010-01-15 14:37:38

回答

2

您可以从您的应用程序的任何地方拨打NSUserDefaults。这通常是存储状态信息的地方。

如果您设想您可能必须为大量用户存储信息,则应该创建自定义数据库并仅依靠它。最简单的方法是使用Core Data。您可以将托管对象上下文驻留在应用程序委托中,然后通过调用应用程序委托从任何地方访问它。

我会告诫你,iPhone应用程序有一个不同的设计模式比Web应用程序。除非您正在实施基于Web的界面,否则您不应该在页面和会话方面进行思考。

+1

你好,钥匙串存储用户名/密码怎么样?我的意思是,我有4个视图控制器,我想在所有控制器中使用会话。我怎样才能做到这一点? NSUserDefaults或钥匙串? – 2013-07-10 09:09:51

0

可以节省NSUserDefaults

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

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

,如果你有NSUserDefaults的用户名信息,您可以得到您的用户名信息的用户名信息

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

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

    return val; 
} 

使用

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