繁体   English   中英

如何从应用程序的证书库中删除证书?

[英]How can I remove a certificate from my app's certificate store?

我有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”。

具有讽刺意味的是,这有时会起作用,有时却无效。 我猜有一种可以接受的方法来做一些事情,比如从商店中删除证书。 但我无法弄明白。

提前谢谢了!

我们最近遇到了同样的问题,并在那个案子上开了一张支持票。 根据MS,这在Windows Phone 8.1中是不可能的,对不起。 但它应该在Windows 10中受支持。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM