我想编写一个 C# 控制台或 WinForms 应用程序,以使用证书 .PFX 文件向 PDF 文件添加数字签名。目前,我可以使用 iText7 和 BouncyCaSTLe 库,使用文件系统中文件夹中的 PFX 证书对 PDF 文件进行签名。
但我需要要求用户在运行时从系统中已安装的证书列表中选择一个证书。
具体来说,我想显示Windows安全的确认证书对话框,并使用用户选择的证书进行签名。我想显示如下所示的弹出窗口:
我的具体问题是: 如何触发Windows安全的确认证书对话框,以及如何读取用户选择的证书?
编辑1: 如果我使用 X509Certificate2UI.SelectFromCollection 方法,我会得到一个不同的弹出窗口,如下所示。这和我想要的不一样。
最佳答案
您可以尝试使用X509Certificate2UI.SelectFromCollection
(记录在 here) .
正如 @Crypt32 在评论中提到的,我觉得有必要添加如何使用 api 的代码示例。我想知道 @AllSolutions 如何使用相同的 API 来获取 UI 窗口。看来 UI 会随着 selectionFlag
参数而改变。
var store = new X509Store("MY", StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
var collection = store.Certificates;
var cert = X509Certificate2UI.SelectFromCollection(collection, "Select", "Select a certificate to sign", X509SelectionFlag.SingleSelection);
关于c# - 如何使用 C# 控制台或 WinForms 应用程序中的 Windows 安全性确认证书弹出窗口选择证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60915878/