如何解决无需密码即可使用X509证书
| 我有我需要使用的证书才能访问Web服务。问题是,每当我尝试使用X509证书时,都会要求输入密码(PIN)。有什么方法可以直接提供密码,而不必每次都弹出相同的窗口? 如果有帮助,该证书将使用Oberthur Technologies制造的软件狗。这是我用来获取证书的代码:X509Store store = new X509Store(\"MY\",StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
if(collection.Count != 0)
userCert = collection[0]; // everything\'s ok up to here
这里\'S在我使用的证书:
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(new Uri(url));
req.ClientCertificates.Add(userCert); // add the certificate I just got
// ...
WebResponse ret = req.GetResponse(); // here\'s where it asks me for my passphrase
解决方法
证书的私钥存储在Oberthur令牌上。它强制用户输入PIN以获得对证书私钥的访问。这是设计使然,不能覆盖。
,我正在寻找一种使用托管代码执行此操作的方法,但尚未找到。
过去,我刚刚使用选项PP_SIGNATURE_PIN和PIN作为数据调用了CAPI函数CryptSetProvParam。这样可以防止CSP提示用户输入PIN。系统服务很难输入该PIN :)
因此,您将必须选择CryptSetProvParam来执行此操作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。