2

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

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

谢天谢地

4

4 回答 4

28

使用钥匙串存储登录密码。下面是简单的代码

储藏:

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(此处)。

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

  1. 即使在应用程序卸载-安装后数据仍然存在
  2. 数据可以在您的应用程序之间共享(需要具有相同的捆绑种子 ID,从 此处读取)。考虑所有应用的单点登录。
  3. 仅在设备重置时从设置中删除数据。
于 2012-09-10T10:56:48.153 回答
2

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

于 2012-09-10T10:48:49.743 回答
2

检查keychainServConcepts以保存所需的数据

检查STUtils以安全地保存用户名和密码。

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

于 2012-09-10T10:50:01.353 回答
-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 :设置所有值为空。

于 2012-09-10T10:52:29.200 回答