ios - 以编程方式检查是否在 iOS 7 上设置了密码锁

标签 ios security ios7 xamarin

我实现了这里描述的密码检测 - Programatically Checking if a Passcode Lock is Set ,但它仅适用于 iOS 8 及更高版本。

应用程序在此行崩溃secRecord.AccessControl = new SecAccessControl (SecAccessible.WhenPasscodeSetThisDeviceOnly); 是否可以在 iOS 7 上以编程方式检查密码状态? 我没有找到任何关于此的信息。

最佳答案

不,你不能。来自文档:

kSecAttrAccessibleAfterFirstUnlock

钥匙串(keychain)项中的数据在重启后无法访问,直到设备被用户解锁一次。

第一次解锁后,数据仍然可以访问,直到下一次重启。对于需要由后台应用程序访问的项目,建议这样做。使用加密备份时,具有此属性的项目会迁移到新设备。

适用于 iOS 4.0 及更高版本。

kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly

钥匙串(keychain)项中的数据在重启后无法访问,直到设备被用户解锁一次。

第一次解锁后,数据仍然可以访问,直到下一次重启。对于需要由后台应用程序访问的项目,建议这样做。具有此属性的项目不会迁移到新设备。因此,从不同设备的备份恢复后,这些项目将不存在。

适用于 iOS 4.0 及更高版本。

kSecAttrAccessibleAlways

无论设备是否被锁定,钥匙串(keychain)项中的数据始终可以访问。

不建议将其用于应用程序。使用加密备份时,具有此属性的项目会迁移到新设备。

适用于 iOS 4.0 及更高版本。

kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly

钥匙串(keychain)中的数据只有在设备解锁时才能访问。只有在设备上设置了密码时才可用。

对于只需要在应用程序处于前台时可访问的项目,建议使用此方法。具有此属性的项目永远不会迁移到新设备。将备份恢复到新设备后,这些项目就会丢失。在没有密码的设备上,任何项目都不能存储在此类中。禁用设备密码会导致删除此类中的所有项目。

适用于 iOS 8.0 及更高版本。

kSecAttrAccessibleAlwaysThisDeviceOnly

无论设备是否被锁定,钥匙串(keychain)项中的数据始终可以访问。

不建议将其用于应用程序。具有此属性的项目不会迁移到新设备。因此,从不同设备的备份恢复后,这些项目将不存在。

适用于 iOS 4.0 及更高版本。

kSecAttrAccessibleWhenUnlocked

钥匙串(keychain)项中的数据只有在用户解锁设备时才能访问。

建议仅当应用程序在前台时才需要访问的项目。使用加密备份时,具有此属性的项目会迁移到新设备。

这是在没有明确设置可访问性常量的情况下添加的钥匙串(keychain)项目的默认值。

适用于 iOS 4.0 及更高版本。

kSecAttrAccessibleWhenUnlockedThisDeviceOnly

钥匙串(keychain)项中的数据只有在用户解锁设备时才能访问。

建议仅当应用程序在前台时才需要访问的项目。具有此属性的项目不会迁移到新设备。因此,从不同设备的备份恢复后,这些项目将不存在。

适用于 iOS 4.0 及更高版本。

关于ios - 以编程方式检查是否在 iOS 7 上设置了密码锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32841929/

相关文章:

ios - 具有许多项目的 UIActionSheet 覆盖文本

ios - iPhone 不振动

iphone - 分段 TableView 索引选择突出显示

ios - 在 Swift 的 iOS 应用程序中显示表格(在 html/Excel 电子表格中的意思)

c# - 这些随机数是 'safe'

html - 图像未出现在 iOS7 中 chrome 的 Canvas 中

ios - 如何设置 UIImageView 的大小等于 UIImage 的大小?

c - 我怎样才能找到这段代码中的漏洞?

security - 沙盒脚本

ios - 我想在 iOS7 的 UI ScrollView 中更改按位置绑定(bind)的大小