如何授予从商店中删除X509Certificate2的权限

Mat*_*rts 5 c# asp.net permissions x509certificate

我有一些代码从本地计算机上的"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);
}
Run Code Online (Sandbox Code Playgroud)

当我运行我的测试时,这段代码对我有用,因为它们作为我的本地用户帐户运行.但是,当我从Web应用程序运行代码,作为"NETWORK SERVICE"用户运行时,它在serverClientStore.Open(OpenFlags.ReadWrite);"访问被拒绝"错误的行上失败.

但是 - 我不知道如何设置"NETWORK SERVICE"或任何其他用户的权限,以便能够从商店读取/写入.我可以看到有关授予单个证书权限的内容,但对于商店没有任何内容.

我尝试C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys向网络服务授予完全权限,但无济于事.

有任何想法吗?