4

我有必须存储证书的 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());

只有一个问题。但是,如果您查看 GetStoreName 1的文档,它会说证书存储的名称不能是“MY”。

具有讽刺意味的是,这有时有效,有时却无效。我猜想有一种可接受的方式来做一些事情,比如从商店中删除证书。但我一直无法弄清楚。

提前谢谢了!

4

1 回答 1

0

我们最近遇到了同样的问题,并为此案开了一张支持票。根据 MS 的说法,这在 Windows Phone 8.1 中是不可能的,很抱歉。不过 Windows 10 应该支持它。

于 2015-11-13T11:10:09.353 回答