如何以编程方式回答"是"到WebBrowser控制安全警报

时间:2012-10-21 16:26:38

标签: c# winforms webbrowser-control

我正在使用WebBrowser控件以编程方式访问单个网站,但每当我登录时,我都会收到此证书安全警报:

enter image description here

由于我信任该网站,并且因为我需要以编程方式自动化登录,所以此对话框会受到妨碍。

我搜索了SO以寻找解决方案并找到a question similar to mine,但 accepted answer无效!

我在包含WebControl的表单中定义了一个静态成员:

public static bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
  return true;
}

在我的表单构造函数中,我添加了:

ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateServerCertificate);

但是没有摆脱证书安全警报。

我也点击了View Certificate按钮,然后点击了后面的对话框中的Install Certificate按钮,但这似乎也没有帮助。

有没有办法摆脱这种警告?

IE是否等同于Firefox的Add Security Exception‌​

注意:使用独立浏览器(IE,FF,Chrome,Safari),所有者的证书完全正常(没有显示此安全警告)。它只显示WebBroswer控件的问题。

3 个答案:

答案 0 :(得分:6)

最好的办法是整理破损的证书。浏览器保护这些警告是有原因的。你正在做的是试图规避用户的安全。

如果必须使用webbrowser控件执行此操作,请将ScriptErrorsSuppressed设置为true。

答案 1 :(得分:5)

ScriptErrorsSuppressed = True无效:安全对话框没有出现,但效果就像是按“否”

答案 2 :(得分:0)

我通过在根受信任的证书颁发机构中导入损坏的证书来解决这个问题。

enter image description here