2009-09-29 78 views
0

谁能告诉我,请我为什么没有这个cert.PrivateKey(= NULL)后,我一个Web方法调用期间从HttpClientCertificate实例化的X509Certificate2 ..某事像这样:缺少客户Certificate's专用密钥

X509Certificate2 cert = new X509Certificate2(Context.Request.ClientCertificate.Certificate,“test”);

HttpClientCertificate有一个私钥,当我检查调试器,但X509Certificate2(证书变量)不是!

..此外,我甚至没有得到一个CryptographicException,当我指定一个无效的密码。

有人能让我变清吗?

真的非常感谢!

亲切的问候, 克里斯

回答

1

您正在使用(数据/密码)的构造旨在被用来获得从PKCS#12文件(PFX文件)的证书。 ClientCertificate的Certificate属性“以ASN.1格式获取包含整个证书内容的二进制流的字符串。”

ClientCertificate旨在为您提供在与服务器建立SSL会话期间使用的证书。我并不期望它会以你想要的方式暴露私钥。

+0

之前,我试图用适当的构造函数: X509Certificate2证书=新X509Certificate2(Context.Request.ClientCertificate.Certificate) 也不在这里,我有证书的对象实例化专用密钥像在上面的行之后.. 我想实现SOAP消息的路由,包括连接到它们的客户端证书。这就是为什么我想从HttpClientCertificate读取它并实例化一个新的对象X509Certificate/X509Certificate2并将其添加到新的路由SoapHttpClient ..这就是我的问题.. – Kr15 2009-10-01 10:54:29