如何存储非标准的Web身份验证?

时间:2011-05-15 13:09:54

标签: ios authentication asp.net-web-api

在我的应用与之通信的网络API中,身份验证过程按以下方式设计:

  1. 用户输入他/她所属的group的名称。
  2. 服务器发送组成员列表。
  3. 用户选择user name并输入password
  4. 我的应用程序将由group iduser idpassword构成的哈希发送到服务器以验证凭据,并且在成功验证的情况下,在进一步的事务中使用此哈希。
  5. 完成此过程后,我不会收到NSURLConnectionconnection:canAuthenticateAgainstProtectionSpace:等标准connection:didReceiveAuthenticationChallenge:条消息。
    我本身可以处理它,但是当谈到安全存储凭据时,我感到困惑。有没有办法通过一些内置的iOS SDK方法来实现这一点,或者我必须手动将哈希值写入文件中?什么是正确的方法?

1 个答案:

答案 0 :(得分:1)

钥匙串似乎是存储用户凭据/哈希的最佳选择。 查看http://developer.apple.com/library/mac/#documentation/Security/Conceptual/keychainServConcepts/iPhoneTasks/iPhoneTasks.html

https://github.com/ldandersen/scifihifi-iphone/tree/05e64ff2814a8192c43f1f81eb8e09dc3764fa18/security

  • 请注意,虽然钥匙串可能是iOS中存储此类数据的最安全的地方,但它并不完全安全。但考虑到你想要存储的数据,它可能已经足够了。

编辑:看看http://overhrd.com/?p=208 您可以通过这种简单的呼叫访问钥匙串上的数据:

[Keychain setString:@"hashhashhash" forKey:@"userHash"];

// later on…
[Keychain getStringForKey:@"userHash"];