如何解决如何为 SOAP 客户端证书关联加密服务提供程序 (CSP) PIN 对话框?
我正在 C# 中使用加密服务提供程序 (CSP) 为智能卡工作,我有以下代码:
const int PROV_RSA_FULL = 1;
// looks in the Windows certificate store and fetches the right certificate
X509Certificate2 authCert = GetAuthenticationCertificate();
// Personal CSP is installed on PC
CspParameters cspParams = new CspParameters(PROV_RSA_FULL,"Personal CSP",authCert.Thumbprint);
cspParams.Flags = CspProviderFlags.UseExistingKey;
RSACryptoServiceProvider rsaKey = new RSACryptoServiceProvider(cspParams)
//so now I'm able to sign and verify,like in Microsoft example code:
byte[] data = new byte[] { 0,1,2,3,4,5,6,7 };
// Sign the data using the Smart Card CryptoGraphic Provider.
byte[] sig = rsaKey.SignData(data,"SHA1");
//Verify the data using the Smart Card CryptoGraphic Provider.
bool verified = rsaKey.VerifyData(data,"SHA1",sig);
CSP 正在通过“个人 CSP”对话框请求智能卡的 PIN,一切正常!
之后我有一个 SOAP 请求,其中需要客户端证书,即“authCert”,此 SOAP 请求需要链接到 CSP 的证书。所以我可以进入 SOAP 请求:
//SOAP client,class created from WSDL
m_soapClient = new SoapServiceClient();
//assign client certificate to soap-client
m_soapClient.ClientCredentials.ClientCertificate.Certificate = authCert;
为此,智能卡需要一个 PIN 对话框,但我没有看到“个人 CSP”PIN 弹出窗口,而是看到了常见的 Windows PIN 对话框。输入PIN后,结果是一条错误信息: “无法为具有权限的 SSL/TLS 建立安全通道 ... url”
所以我不知道在哪里可以为这个 SOAP 请求设置 CSP,以获得正确的 PIN 对话框?
有人可以帮我吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。