MonoTouch - 如何使用SecKeyChain.QueryAsRecord()获取证书列表?

时间:2011-01-25 19:22:15

标签: security ipad certificate xamarin.ios

我通过电子邮件向我的iPad发送了一个.p12证书,并将其安装在下面的设置中 设置 - >配置文件 - >配置文件。

我尝试使用以下代码在iPad上获取证书数组:

        SecRecord myquery = new SecRecord(SecKind.Identity);
        SecStatusCode resultCode;
        SecRecord[] arrayRecords = SecKeyChain.QueryAsRecord(myquery, 10, out resultCode);

从QueryAsRecord()返回时,resultCode设置为ItemNotFound。我也尝试创建myquery:

        SecRecord myquery = new SecRecord(SecKind.Certificate);

但这也导致resultCode设置为ItemNotFound。

如何使用SecKeyChain.QueryAsRecord()获取已安装证书的列表?

2 个答案:

答案 0 :(得分:6)

钥匙串没有你想象的那么有用。钥匙串只允许您访问您手动添加的证书,它不会授予您访问系统证书的权限。

或者至少,我从未找到过这样做的方法,几个月前的谷歌搜索没有找到答案。

答案 1 :(得分:0)

我非常不同意。与KeyChain的monomac绑定非常好,易于使用。您可以访问登录密钥链的所有“Internet密码”并读取/更新/删除它们。

这是一个github项目的链接,它将为您提供开箱即用的工作示例:

https://github.com/danclarke/MonoMacKeychainDemo/blob/master/KeyChainDemo/KeychainAccess.cs

最佳,

中号