C# 如何授予从存储中删除X509Certificate2的权限

C# 如何授予从存储中删除X509Certificate2的权限,c#,asp.net,permissions,x509certificate,C#,Asp.net,Permissions,X509certificate,我有一些代码可以从本地机器上的“TrustedPeople”存储中删除某些证书。执行此操作的代码: var serverClientStore = new X509Store(StoreName.TrustedPeople, StoreLocation.LocalMachine); serverClientStore.Open(OpenFlags.ReadWrite); X509Certificate2Collection certCollection = serverClientStore.

我有一些代码可以从本地机器上的“TrustedPeople”存储中删除某些证书。执行此操作的代码:

var serverClientStore = new X509Store(StoreName.TrustedPeople, StoreLocation.LocalMachine);
serverClientStore.Open(OpenFlags.ReadWrite);

X509Certificate2Collection certCollection = serverClientStore.Certificates;
X509Certificate2Collection currentCerts = certCollection.Find(X509FindType.FindBySubjectName, myCertName, true);
foreach (X509Certificate2 cert in currentCerts)
{
    serverClientStore.Remove(cert);
}
这段代码在我运行测试时适用,因为它们是以我的本地用户帐户运行的。但是,当我以“网络服务”用户的身份从web应用程序运行代码时,它在
serverClientStore.Open(OpenFlags.ReadWrite)行失败出现“访问被拒绝”错误

但是-我不知道如何设置“网络服务”或任何其他用户的权限,以便能够从存储读取/写入。我可以看到关于为单个证书授予权限的内容,但对应用商店没有

我尝试将
C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
的完全权限授予网络服务,但没有成功


有什么想法吗?

你已经找到问题的答案了吗?没有-对不起。我走了另一条路,最终不再需要证书,这条路走不通