保存登录凭据Xcode

时间:2012-09-10 10:46:22

标签: iphone objective-c ios xcode ipad

我正在实现一个应用程序,第一个视图是登录视图。它包含3个文本字段帐户名,用户名和密码。我想让应用程序保存登录信息,以便每次打开应用程序时都不让用户写入。并在他/她退出时被删除。

怎么做?以及如何读/写文件?

谢天谢地

4 个答案:

答案 0 :(得分:27)

使用密钥链存储登录密码。以下是简单的代码

存储:

KeychainItemWrapper *keychain = 
 [[KeychainItemWrapper alloc] initWithIdentifier:@"MyAppLoginData" accessGroup:nil];
[keychain setObject:loginStr forKey:(id)kSecAttrAccount];
[keychain setObject:pwdStr forKey:(id)kSecValueData];

查询:

NSString *login = [keychain objectForKey:(id)kSecAttrAccount];
NSString *pwd = [keychain objectForKey:(id)kSecValueData];

要删除:

[keychain resetKeychainItem];

您需要先在项目中添加KeychainItemWrapper.h和KeychainItemWrapper.m(here)。

使用钥匙串存储数据的另一个重要方面是

  1. 即使在app uninstall-install
  2. 之后,数据仍然存在
  3. 可以在您的应用中共享数据(需要具有相同的捆绑种子ID,从中读取 here)。想想所有应用的单点登录。
  4. 仅在设备重置时从设置中删除数据。

答案 1 :(得分:2)

这种敏感数据通常存储在钥匙串中。类似的问题here

答案 2 :(得分:2)

检查keychainServConcepts以保存所需数据

检查STUtils是否安全保存用户名和密码。

U也可以使用NSUserDefault以key为userName保存数据,并在需要时删除。

答案 3 :(得分:-7)

To Save:

    [[NSUserDefaults standardUserDefaults] setValue:AccountTxtField.text forKey:@"Account"];
    [[NSUserDefaults standardUserDefaults] setValue:UserTxtField.text forKey:@"Username"];
    [[NSUserDefaults standardUserDefaults] setValue:passwordTxtField.text forKey:@"password"];
    [[NSUserDefaults standardUserDefaults] synchronize];

To Read:

    NSString * _Account = [[NSUserDefaults standardUserDefaults] stringForKey:@"Account"];
    NSString * _UserName = [[NSUserDefaults standardUserDefaults] stringForKey:@"Username"];
    NSString * _password = [[NSUserDefaults standardUserDefaults] stringForKey:@"password"];

logOut:set all value为null。