如何查询 Mac OS X 钥匙串(keychain)以仅检索 session 项目?
当我尝试获取这样的所有项目时:
[SSKeychain accountsForService:nil];
session 项和系统项具有完全相同的键属性:acct、cdat、class、crtr、labl、mdat、svce
如何查询钥匙串(keychain)以仅获取 session 项或区分它们?
感谢您的帮助!
最佳答案
您可以像这样查询 session 密码(如果需要所有密码,请将 kSecMatchLimitOne
替换为 kSecMatchLimitAll
。attributes
将具有 在本例中为 CFArrayRef
类型):
NSDictionary* passwordQuery = @{ (__bridge id)kSecAttrService : sessionServiceName, (__bridge id)kSecClass : (__bridge id)kSecClassGenericPassword, (__bridge id)kSecReturnAttributes: (__bridge id)kCFBooleanTrue, (__bridge id)kSecReturnData: (__bridge id)kCFBooleanTrue, (__bridge id)kSecMatchLimit : (__bridge id)kSecMatchLimitOne }; CFTypeRef attributes = nil; OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)passwordQuery, &attributes); if (status != 0){ return nil; }
关于objective-c - 区分 Mac OS X 钥匙串(keychain)中的 session 和系统项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18076785/