我想通过以下访问控制向 secItemAdd 添加一个项目
SecAccessControlRef sacObject = SecAccessControlCreateWithFlags(kCFAllocatorDefault,
kSecAttrAccessibleAfterFirstUnlock,
/*kecAccessControlTouchIDAny | */kSecAccessControlApplicationPassword, &error);
所以它基本上要求密码将项目添加到钥匙串(keychain),这是完美的,但是当我想访问这个项目时,我想跳过 UI 身份验证,并且我想使用 kSecUseAuthenticationUISkip 手动提供密码。
根据 Apple 关于 kSecUseAuthenticationUISkip
常量 (https://developer.apple.com/reference/security/ksecuseauthenticationuiskip?language=objc) 的文档
Silently skip any items that require user authentication. Only use this value with the
SecItemCopyMatching
function.
所以不是选择性地跳过身份验证,而是跳过需要身份验证的项目
现在,当您想使用应用程序提供的密码保护对钥匙串(keychain)的访问时,在调用 SecItemAdd
时,您必须使用 kSecUseAuthenticationContext
键设置为LAContext
类型为 LACredentialTypeApplicationPassword
的实例,其中包含您向用户询问的密码以及您传递给 的对象中的
键。kSecAccessControlApplicationPassword
>kSecAttrAccessControl
这是一篇文章,它通过一个示例对其进行了解释,我认为它非常适合您的用例:http://collinbstuart.github.io/lessons/2015/11/04/keychain_entropy
关于ios - kSecUseAuthenticationUISkip 使用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42339000/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |