C# Mac-iPhone上的Xamarin/Visual Studio-无法列出X509存储证书
环境 设备:。iPhone6s 开发环境:.net标准1.5,Mac社区版7.2.2(build 7)上的Visual Studio,Xamarin 我有以下代码来获取/列出安装在iPhone上的证书。到目前为止,我还没有成功–当我使用下面的代码时,我得到了一个空集合 我使用开发配置文件在iPhone上运行代码 我有两个项目,一个便携项目和一个iOS项目。下面列出的代码位于可移植类库中C# Mac-iPhone上的Xamarin/Visual Studio-无法列出X509存储证书,c#,.net,xamarin.ios,cryptography,visual-studio-mac,C#,.net,Xamarin.ios,Cryptography,Visual Studio Mac,环境 设备:。iPhone6s 开发环境:.net标准1.5,Mac社区版7.2.2(build 7)上的Visual Studio,Xamarin 我有以下代码来获取/列出安装在iPhone上的证书。到目前为止,我还没有成功–当我使用下面的代码时,我得到了一个空集合 我使用开发配置文件在iPhone上运行代码 我有两个项目,一个便携项目和一个iOS项目。下面列出的代码位于可移植类库中 using System; using System.Collections.Generic; using X
using System;
using System.Collections.Generic;
using Xamarin.Forms;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
X509Store paramStore
paramStore = new X509Store(StoreName.My, StoreLocation.CurrentUser)
paramStore.Open(OpenFlags.ReadOnly);
foreach (X509Certificate2 mCert in paramStore.Certificates)
{
numberOfCertificates = numberOfCertificates + 1;
}
我还尝试访问StoreName.Root、StoreName.CertificateAuthority以及OpenFlags的变体,例如读写-相同的结果没有数据
正在寻找输入/想法。不幸的是,iOS不支持它,以下是苹果方面的解释: 首先,一些澄清:
- 考虑到前面提到的是“客户端身份验证”,我认为您谈论的是数字身份,而不是证书。 注意:数字标识是私钥和证书的组合,其中包含与该私钥匹配的公钥,如果希望服务器对客户端进行身份验证,则需要在客户端显示数字标识
- 似乎您关心通过MDM安装的数字身份。以这种方式安装的凭据被放置在Apple keychain访问组中,因此,只能由Apple应用程序访问。QA1745对此进行了更详细的讨论
更多详细信息,请参阅Apple Developer Forum中的相关案例:很可能您需要清单文件中的特定权限才能访问该文件。有关详细信息,请查看Xamarin或Apple文档。@user1811107,如果我的回答有帮助,您能接受吗?这对我很重要!谢谢