当iOS设备被锁定时,如何启用NSURLCredentials的访问权限?

时间:2016-06-28 12:15:08

标签: ios objective-c swift nsurlcredential

我正在使用Swagger生成的Swift Client,它使用NSURLCredentials对服务器进行身份验证。我正在使用持久性类型.Permanent 我的应用程序在后台与服务器通信并正常工作,除非我锁定手机(我在日志中看到401错误)。我认为NSURLCredential无法在手机锁定时访问钥匙串。 我发现了一些关于使用kSecAttrAccessibleAfterFirstUnlock启用钥匙串访问的帖子。我无法通过NSURLCredential弄清楚如何做到这一点。有谁知道这是否以及如何配置?

1 个答案:

答案 0 :(得分:0)

是的,这正是发生的事情,很有可能。你有几个选择:

  • 删除基础钥匙串项并重新创建它,指定在设备解锁时应该可以访问它。使用该方法时,您根本不需要使用colNames。只需使用Keychain Services API创建一个Internet密码项,凭证存储就应该自动提取它。
  • 将凭据数据保留在内存中,并在会话委托中实现NSURLCredential委托方法(如果您使用该API,则使用NSURLConnection的等效方法),以便在询问时提供凭据。