Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios6 使用钥匙链在iPhone应用程序中存储用户名/密码_Ios6 - Fatal编程技术网

Ios6 使用钥匙链在iPhone应用程序中存储用户名/密码

Ios6 使用钥匙链在iPhone应用程序中存储用户名/密码,ios6,Ios6,我有一个注册表单,其中有很多字段,我将所有字段的数据以json数据的形式保存在服务器上,由新用户输入。 在所有这些字段中,我有两个字段用户名和密码。我想将它们存储在keychain中 为此,我使用以下代码: [[KeychainItemWrapper alloc] initWithIdentifier:@"YourAppLogin" accessGroup:nil]; [keychainItem setObject:@"passtextfield.text" forKey:kSecValueD

我有一个注册表单,其中有很多字段,我将所有字段的数据以json数据的形式保存在服务器上,由新用户输入。 在所有这些字段中,我有两个字段用户名和密码。我想将它们存储在keychain中 为此,我使用以下代码:

[[KeychainItemWrapper alloc] initWithIdentifier:@"YourAppLogin" accessGroup:nil];

[keychainItem setObject:@"passtextfield.text" forKey:kSecValueData];
[keychainItem setObject:@"usernametextfield.text" forKey:kSecAttrAccount];
所以,每当一个新用户提交他们的注册表时,用户名和密码将分别和密钥一起保存在keychain中

现在我的问题是-我有另一个登录页面,当我必须以用户身份启动应用程序时,我必须首先使用注册时作为用户输入的用户名和密码登录

现在告诉我如何登录和检索密钥链数据的代码。 我应该对上面使用的(accessGroup:nil)进行任何更改吗。
提前感谢

访问组不是服务器端,而是iPhone端。从文档中:

访问组可用于在两个或多个应用程序之间共享密钥链项目。对于共享密钥链项目的应用程序,应用程序必须在其密钥链访问组权限中列出一个公共访问组,并且将共享项目添加到密钥链的应用程序必须在传递给SecItemAdd函数的字典中指定此共享访问组名为该密钥的值

如果您有两个登录页面,您的应用程序逻辑将需要存储两个用户/密码组合。因此,您需要将
kSecAttrAccount
指向当前活动帐户

--编辑

从你的评论中,我了解到你想要类似Safari中的密码记忆功能

所以您有Username1/password1和username2/password2。用户名“x”是您的
kSecAttrAccount

当用户输入用户名时,请使用
textfielddidediting:
。在
textfielddidediting
中,在
username1
username2
上扫描输入的字符串以查找匹配项。如果存在任何匹配项,则检索相应的密码。如果没有匹配项,则假定它是一个新的用户名/密码组合,并存储这个新组合


如果你想在他们打字时找到一个匹配项,那么请阅读
文本字段:shouldChangeCharactersRange:replacementString:

“我只有一个登录页面。用户名/密码通过注册页面存储,而不是登录页面。但是现在,当我在登录页面中输入用户名和密码时(请注意,我在某一时间或某一天之前已经完成了注册)我想从钥匙链上检查这两个密码是否存在。告诉我怎么做?