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

时间:2015-09-29 10:47:04

标签: ios security ios7 xamarin

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

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

1 个答案:

答案 0 :(得分:3)

不,你不能。从文档:

<强> kSecAttrAccessibleAfterFirstUnlock

重启后,无法访问钥匙串项目中的数据,直到用户解锁设备为止。

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

适用于iOS 4.0及更高版本。

<强> kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly

重启后,无法访问钥匙串项目中的数据,直到用户解锁设备为止。

首次解锁后,数据仍可访问,直到下次重启。建议用于需要后台应用程序访问的项目。具有此属性的项目不会迁移到新设备。因此,从备份其他设备恢复后,这些项目将不会出现。

适用于iOS 4.0及更高版本。

<强> kSecAttrAccessibleAlways

无论设备是否被锁定,都可以随时访问钥匙串项目中的数据。

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

适用于iOS 4.0及更高版本。

<强> kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly

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

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

适用于iOS 8.0及更高版本。

<强> kSecAttrAccessibleAlwaysThisDeviceOnly

无论设备是否被锁定,都可以随时访问钥匙串项目中的数据。

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

适用于iOS 4.0及更高版本。

<强> kSecAttrAccessibleWhenUnlocked

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

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

这是在未明确设置辅助功能常量的情况下添加的钥匙串项的默认值。

适用于iOS 4.0及更高版本。

<强> kSecAttrAccessibleWhenUnlockedThisDeviceOnly

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

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

适用于iOS 4.0及更高版本。