c# - 从 Web 浏览器控件打开证书信息

标签 c# .net browser ssl-certificate

有谁知道如何从 WebBrowser 控件打开基于 SSL 的“证书信息”屏幕?

最佳答案

这可以通过使用名为 X509Certificate2UI 的类来实现。

要使此类对您可用,您需要添加对 System.Security.dll 的引用

X509Certificate2UI 类中,您有一个名为 DisplayCertificate() 的方法,它采用 X509Certificate2 对象作为参数。调用时,此方法会显示一个对话框,显示包括链接在内的所有证书信息,与您在 IE 中找到的对话框完全相同。

Web 浏览器控件只能返回一个 X509Certificate,然后可以将其传递到 X509Certificate2 类的构造函数中。

所以代码看起来是这样的:

//includes on top
using System.Security;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;

//Do webrequest to get info on secure site
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://securesite.com");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
response.Close();

//retrieve the ssl cert and assign it to an X509Certificate object
X509Certificate cert = request.ServicePoint.Certificate;

//convert the X509Certificate to an X509Certificate2 object by passing it into the constructor
X509Certificate2 cert2 = new X509Certificate2(cert);

//display the cert dialog box
X509Certificate2UI.DisplayCertificate(cert2);

关于c# - 从 Web 浏览器控件打开证书信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2690082/

相关文章:

c# - xunit 构造函数在每次测试之前运行

c# - 将参数与 Func<> 一起使用

c# - 如何知道用户是否可以读取和列出目录中的文件

javascript - 使用图像而不是实际的 radio 输入有什么好处

javascript - 需要解决这个 javascript 编码问题

c# - Elastic NEST不允许我创建多个聚合

c# - ServiceStack: View 中未使用自定义应用程序设置

c# - ASP.Net 的自动回发。当速度太慢时会发生什么?

c# - 在主线程忙时连续更新UI

javascript - 用于 Ruby-on-rails 的 Sproutcore 或 Cappuccino?