如何在C#中获取/拒绝数字证书的Windows标准对话框?

时间:2011-12-03 02:53:47

标签: c# .net dialog certificate x509

使用C#编写C / S应用程序时,我正在检查我连接的服务器的证书。因此,我得到一个回调,我可以考虑X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors检查证书。我想让用户决定它,所以考虑使用windows标准证书对话框,如下所示:

Windows standard certificate decision dialog

如何通过给定数据实现这一目标?

我找到了显示证书的部分答案。因此我可以使用此代码:

X509Certificate certificate = ...
X509Certificate2 certenh = new X509Certificate2(certificate);
X509Certificate2UI.DisplayCertificate(certenh);

但另一条消息仍然缺失。我可以重现它,但不是每种语言,我不知道在哪里找到这个符号。作为显示此消息的条件,我可以使用certenh.Verify();

对于背景信息的图标,我可以在索引13,14和15处使用 urlmon.dll 。您可以找到以下图标:

Certificate information Certificate question Certificate warning

所以我能够构建类似于后台的消息。剩下的唯一问题是,使用标准语言特定短语来构建消息会更好。但我发现没有包含特定语言字符串的库。

目前,我使用sslPolicyErrors的值来自行构建消息。

0 个答案:

没有答案