如何在Webbrowser控件中禁用"安全警报"窗口

use*_*826 9 c# browser https certificate

我正在使用Webbrowser控件使用"不受信任的证书"登录HTTPS站点.但我得到一个关于不受信任的证书的弹出窗口"安全警报":

安全警报窗口

我必须按标题找到这个窗口并发送它Alt+ Y:

int iHandle = NativeWin32.FindWindow(null, "Security Alert");
NativeWin32.SetForegroundWindow(iHandle);
System.Windows.Forms.SendKeys.Send("Y%");
Run Code Online (Sandbox Code Playgroud)

但是用户可以看到此窗口的闪烁.

我该如何忽略此警报?
或者在Webbrowser控件中禁用此"不受信任的证书"检查?

小智 6

好的,文章是关于代码项目的 - 请参阅http://www.codeproject.com/KB/shell/WebBrowserControlDialogs.aspx 希望这会有所帮助.


bob*_*olt 3

这应该可以做到:

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

ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateServerCertificate);
Run Code Online (Sandbox Code Playgroud)

显然,盲目允许证书是存在安全风险的。当心。

  • 我无法让它与 WebBrowser 控件一起使用。可能只有我这么认为,但我怀疑此解决方案不适用,因为 System.Windows.Forms.WebBrowser 控件不通过 .NET 发送请求。 (3认同)