我有以下代码,其中 SIGNED_FILENAME 是指向包含私钥的现有 pfx 文件的常量。
X509Certificate2 cert = new X509Certificate2(SIGNED_FILENAME, PASSWORD, X509KeyStorageFlags.MachineKeySet);
RSACryptoServiceProvider certRsa = cert.PrivateKey as RSACryptoServiceProvider;
当我使用代码向私钥添加权限时,我发现它们是在 certRsa.CspKeyContainerInfo.UniqueKeyContainerName 中指定的文件上设置的。当我在证书 mmc 管理单元中查看证书权限时,没有设置新的权限。
当我通过 Certificates mmc 管理单元手动设置密钥时,我发现它设置权限的私钥与我在上面提到的 UniqueContainerName 属性中找到的私钥不同。
TLDR:每次我运行这两行代码时,关键容器文件都会发生变化。
为什么会发生这种情况?如何在证书 mmc 管理单元所做的同一密钥上设置权限?