繁体   English   中英

从X509Store获取X509证书时提示用户输入密码?

[英]Prompt user for password when grabbing X509Certificate from X509Store?

我有一个C#表单(在客户端计算机上运行),该表单从商店中收集了所有用户X509证书,并将它们呈现给用户,以便他们可以选择要使用的X509证书。 然后,我将证书传递给Web服务以进行一些工作。 这一切都很棒! 问题是,永远不会提示用户输入X509证书密码吗? 从商店获得X509Certificate后,我找不到“检查密码”的方法。 我还考虑过使用X509Certificate构造函数,该构造函数需要路径和密码,但是我没有看到一种方法来从我从商店中获取的X509Certificate中获取文件路径和名称? 仅从商店中获取证书而不要求输入用户密码是否安全?

这是我从商店抢购的方式:

X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
for (int i = 0; i < store.Certificates.Count; i++) 
{
    X509Certificate c = store.Certificates[i];
    ...//add to GUI for user to pick here....
}

感谢您的帮助,史蒂夫

如果您选择使用来自加密设备(例如eToken或SmartCard)的证书,系统将自动提示您输入密码(设备的密码,而不是证书)。 在其他情况下,我认为您不应该关心它。 在Windows中,您无需任何密码即可轻松访问本地存储,因此为什么要在应用程序中对其进行密码保护。

这取决于证书的私钥是否受密码保护。 如果您从商店中访问了此类证书,则窗口应提示您输入该证书。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM