我们想要创建一个自动从商店中删除证书的服务(使用c#)。当我们手动运行.exe时,一切顺利。但是当我们从.exe创建一个服务时,它不会读取商店中的证书,并一直说它是空的。
我们可以做些什么来纠正这个问题?
以下是读取商店然后删除所有找到的证书的部分:
X509Store store = new X509Store(StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadWrite);
X509Certificate2Collection storecollection = (X509Certificate2Collection)store.Certificates;
foreach (X509Certificate2 x509 in storecollection)
{
store.Remove(x509);
}
store.Close();
答案 0 :(得分:0)
正在正确阅读商店。问题是您的服务(安装时)在不同的用户下运行。他的证书商店是空的。 当您通过双击.exe运行该服务时,它将在您的帐户下运行。
如果您愿意,可以将服务设置为在您的帐户下运行。您可以在“登录”选项卡上的服务属性中执行此操作。