我想从另一个应用程序访问我的应用程序的证书存储区。我已在package.appmanifest
文件中启用"sharedusercertificates"
。如何访问Windows Phone 8.1中的应用程序证书存储运行时应用程序
Windows.Storage.StorageFile selectedCertFile = await folder.GetFileAsync(fileName);
IBuffer buffer = await FileIO.ReadBufferAsync(selectedCertFile);
string certificateData = CryptographicBuffer.EncodeToBase64String(buffer);
string password = "password";
await CertificateEnrollmentManager.ImportPfxDataAsync(
certificateData,
password,
ExportOption.NotExportable,
KeyProtectionLevel.ConsentWithPassword,
InstallOptions.None,
selectedCertFile.DisplayName);
在自己的应用程序,我可以列出已安装的证书没有问题:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
var task = CertificateStores.FindAllAsync();
task.AsTask().Wait();
var certlist = task.GetResults();
Debug.WriteLine("Cert count: {0}", certlist.Count);
LoadCertList(certlist);
}
private void LoadCertList(IReadOnlyList<Certificate> certificateList)
{
listbox1.Items.Clear();
foreach (Certificate cert in certificateList)
{
listbox1.Items.Add(cert.Subject);
}
}
如果我试图访问这些从其他应用程序,这将不会列出。 在Windows Phone 8.1的邮件客户端设置中,安装的证书也丢失了。列出了定期安装而非编程的证书。
有没有办法将我的自定义证书安装到系统的证书存储中?所以它可以用于其他应用程序。
我一直在网上搜索了几天,但我没有找到解决方案。
因此,应该有可能。
“的sharedUserCertificates能力授予应用程序容器读取包含在所有用户存储和智能卡可信根存储访问的证书和密钥。” https://msdn.microsoft.com/en-us/library/windows/apps/hh465025.aspx
我错过了什么?帮助将不胜感激。
迪诺