【发布时间】:2015-03-04 18:14:33
【问题描述】:
我有一个必须存储证书的 Windows Store/Phone 通用应用程序。我可以轻松地将证书加载到应用程序的 CertificateStore 中并使用它们。但是在删除它们时我遇到了麻烦。
例如,以下代码非常适合在 Windows 应用商店环境中查找我的证书:
async Task<Certificate> FindMyCert()
{
var query = new CertificateQuery();
query.FriendlyName = "mytestcert";
var certificates = await CertificateStores.FindAllAsync(query);
if (certificates.Count != 1)
{
return null;
}
return certificates[0];
}
现在,假设我想从商店中删除该证书。我知道的唯一“删除”是在 CertificateStore 对象上。所以我需要获取证书存储,然后进行删除:
var s = CertificateStores.GetStoreByName("MY");
if (s != null)
s.Delete(c);
Assert.IsNull(await FindMyCert());
只有一个问题。但是,如果您查看 GetStoreName1 的文档,它会说证书存储的名称不能是“MY”。
具有讽刺意味的是,这有时有效,有时却无效。我猜想有一种可接受的方式来做一些事情,比如从商店中删除证书。但我一直无法弄清楚。
非常感谢!
【问题讨论】:
-
在这里遇到同样的问题!运气好了吗?
-
很遗憾,没有。没有办法,恐怕。我没有仔细查看新的通用平台,看看它是否在那里。目前这是我的应用程序的“功能”。如果你发现了什么,请在这里链接回来! :-)
-
下周我会在微软询问此事。
-
好的,抱歉耽搁了。根据客户支持,这在 Windows Phone 8.1 中是不可能的。显然Win10会支持。
-
啊!伟大的!谢谢!!你可能应该回答这个问题,我会标记它。
标签: c# windows-store-apps win-universal-app certificate-store