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つの重要な側面は、

  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:すべての値をnullに設定します。

于 2012-09-10T10:52:29.200 に答える