C# 证书管理器中提供的代码bu的X.509证书中不存在私钥
因此,我尝试使用证书在我的解决方案和基于SOAP的服务之间建立通信 我已将他们的证书和我的证书安装到证书存储中 我已确保我的证书具有与其对应的私钥: 但是,当从存储区将我的证书加载到代码中时,我得到错误“X.509证书中不存在私钥” 我打印了以下内容,可以看到私钥是空的,containsSprivateKey==False ClientCertificatePublicKey:System.Security.Cryptography.X509Certificates.PublicKey,ClientCertificatePrivateKey:,containsSprivateKey False 到目前为止,我已经尝试: 将keystrageFlags设置为:C# 证书管理器中提供的代码bu的X.509证书中不存在私钥,c#,x509certificate,private-key,C#,X509certificate,Private Key,因此,我尝试使用证书在我的解决方案和基于SOAP的服务之间建立通信 我已将他们的证书和我的证书安装到证书存储中 我已确保我的证书具有与其对应的私钥: 但是,当从存储区将我的证书加载到代码中时,我得到错误“X.509证书中不存在私钥” 我打印了以下内容,可以看到私钥是空的,containsSprivateKey==False ClientCertificatePublicKey:System.Security.Cryptography.X509Certificates.PublicKey,Cli
X509KeyStorageFlags.MachineKeySet|
X509KeyStorageFlags.PersistKeySet|
X509KeyStorageFlags.Exportable
在应用程序池中将加载用户配置文件设置为true
下面是我如何从商店中读取证书的一个片段
private byte[] ReadCertificate(string certificateThumbprint)
{
X509Store store = new X509Store("MY",StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
X509Certificate2Collection collection =
(X509Certificate2Collection)store.Certificates;
X509Certificate2Collection signingCert =
collection.Find(X509FindType.FindByThumbprint,
certificateThumbprint,false);
byte[] rawdata = signingCert[0].RawData;
store.Close();
return rawdata;
}
有人知道我该怎么解决这个问题吗
byte[] rawdata = signingCert[0].RawData;
实际上,这只返回证书的公共部分,而不返回私钥引用。相反,您应该考虑返回整个<代码> X509CudiICATE2对象.< /P>