我一直在努力解决一个问题,也许你们可以指出我正确的方向。
我正在尝试通过 https 连接在网络服务器上对 pdf 进行数字签名。
在页面加载时,我这样做:
HttpClientCertificate cs = Request.ClientCertificate;
X509Certificate card = new X509Certificate(cs.Certificate);
Org.BouncyCastle.X509.X509CertificateParser cp = new Org.BouncyCastle.X509.X509CertificateParser();
Org.BouncyCastle.X509.X509Certificate[] chain = new Org.BouncyCastle.X509.X509Certificate[] { cp.ReadCertificate(card.GetRawCertData())};
我在最后一行代码中收到错误“m_safeCertContext 是无效句柄”。
请注意:
- 我使用 2 个完全不同的证书时遇到了同样的错误。
- 证书正在检索到“卡”变量 ok。
- 我曾经将卡转换为 X509Certificate2,但我昨天在某处读到,我无法通过转换为 X509Certificate 然后向下转换为 X509Certificate2 来解决该错误。这是那些“嗯……这没有任何意义,但我还没有尝试过”的时刻之一。
- 我试图向
[System.Security.SecurityCritical, System.Security.SecurityTreatAsSafe]
所有方法甚至类添加属性,以查看它是否可以工作......没有这样的运气。
谁能给我一个提示?