【问题标题】:iphone session managementiphone会话管理
【发布时间】:2011-01-05 11:00:53
【问题描述】:

如何在 iPhone 应用程序中管理用户会话?我在我的应用程序的第一页上从用户那里获得了用户名和密码。用户可以随时退出。如何像任何其他 Web 应用程序一样在 iPhone 应用程序中存储会话信息?有没有其他技术呢? 谢谢。

【问题讨论】:

  • 你能说得更具体些吗?您的意思是您的应用程序连接到的 Web 服务会话吗?您的意思是通过注销“退出”吗?你看过 NSUserDefaults 吗?
  • 您是否正在开发仅 html 的应用程序?
  • 我一直在开发 iphone 应用程序,而不是 iphone 网络应用程序。当用户登录我的应用程序(提交他的用户名和密码)时,我使用 NSUSerDefaults 存储他们的凭据。但是,用户可以在点击注销按钮时注销。那么,当他点击注销按钮时我该怎么办。以及我应该如何检查应用程序每个页面中的用户会话信息。我足够清楚吗?简而言之,我如何在 iphone 应用程序(我正在开发基于 iphone 窗口的应用程序,而不是 iphone web 项目)中处理用户会话控制机制(如在标准 Web 项目中)。谢谢。

标签: iphone session


【解决方案1】:

您可以在应用中的任何位置拨打NSUserDefaults。这通常是存储状态信息的地方。

如果您设想您可能需要为大量用户存储信息,您应该创建一个自定义数据库并且只依赖 .最简单的方法是使用Core Data。您可以将托管对象上下文停放在应用程序委托中,然后通过调用应用程序委托从任何地方访问它。

我会提醒您,iPhone 应用程序的设计模式与 Web 应用程序不同。除非您正在实现基于 Web 的界面,否则您不应该考虑页面和会话。

【讨论】:

  • 你好,存储用户名/密码的钥匙串怎么样?我的意思是,我有 4 个视图控制器,我想在所有控制器中使用会话。我怎样才能做到这一点? NSUserDefaults 或钥匙串?
【解决方案2】:

您可以将用户名信息保存在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!");
}

【讨论】:

    猜你喜欢
    • 2011-04-03
    • 1970-01-01
    • 2011-10-22
    • 2012-10-11
    • 2011-04-29
    • 2011-10-22
    • 2011-08-01
    • 2012-11-12
    • 2014-06-19
    相关资源
    最近更新 更多