【发布时间】:2011-05-27 09:30:20
【问题描述】:
我有一个X509Certificate2 实例,并获取它的PrivateKey 属性,即RsaCryptoServiceProvider。 MSDN 记录了这个 RsaCryptoServiceProvider 类是 not 线程安全的。因此,如果给定一些 X.509 证书,我需要在多个线程上执行非对称加密(通常在 Web 服务器上),创建RsaCryptoServiceProvider 的多个实例的最佳方法是什么?
X509Certificate2 上的私钥未标记为可导出,因此我不能简单地导出原始 RsaCryptoServiceProvider 上的参数并将它们重新导入另一个实例以解决线程安全问题。
我通过X509Store 获得了原始文件,但这似乎是X509Certificate2 实例的集合,因此如果我想要RsaCryptoServiceProvider 的新实例,我必须实例化一个new X509Store 找到一个新 X509Certificate2,获得一个新 RsaCryptoServiceProvider。让 .NET 克隆 RsaCryptoServiceProvider 实例似乎非常重要。
有没有更好的方法?
【问题讨论】:
标签: asp.net security azure thread-safety x509certificate2