繁体   English   中英

(NET6+) 授予用户对证书私钥的读取权限

[英](NET6+) Grant user read permission on certificate's private key

Windows 将证书的私钥存储为文件,您可以使用 mmc.exe 授予用户对这些密钥的读取权限。 我需要一种在 NET6 中以编程方式执行此操作的方法。

Microsoft 已将 X509Certificate 类上的PrivateKey属性标记为已过时(自 .NET 4.6 起),正确的方法是使用提供的扩展方法

但是,返回的 RSA 密钥类不包含 UniqueName 属性,我可以使用它来确定私钥的文件名,从而授予用户对其的读取权限。

这个问题授予用户对私钥的权限显示了如何使用过时的属性名称来实现它。

有谁知道不使用PrivateKey属性如何实现这一点?

我对此有一些运气:

// input: "X509Certificate2 cert"
RSACng rsa = cert.GetRSAPrivateKey() as RSACng;
string rsaKeyName = rsa.Key.UniqueName;
if (rsaKeyName == null)
{
    RSACryptoServiceProvider rsaCSP = cert.GetRSAPrivateKey() as RSACryptoServiceProvider;
    rsaKeyName = rsaCSP.CspKeyContainerInfo.KeyContainerName;
}

暂无
暂无

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

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