C# 如何在WPF WebBrowser控件中允许不受信任的SSL

C# 如何在WPF WebBrowser控件中允许不受信任的SSL,c#,wpf,ssl,C#,Wpf,Ssl,我正在做一个非常小的应用程序,它必须显示一些网页(比如“kiosk”)。我看到的一些页面只能通过HTTPS访问,但没有有效的SSL证书 有没有办法强制WPFWebBrowser控件允许任何SSL证书 比如: <Grid> <WebBrowser helpers:WebBrowserUtility.BindableSource="{Binding UrlToDisplay}" AllowInvalidSSL="true"></WebBrowser> &l

我正在做一个非常小的应用程序,它必须显示一些网页(比如“kiosk”)。我看到的一些页面只能通过HTTPS访问,但没有有效的SSL证书

有没有办法强制WPF
WebBrowser
控件允许任何SSL证书

比如:

<Grid>
    <WebBrowser helpers:WebBrowserUtility.BindableSource="{Binding UrlToDisplay}" AllowInvalidSSL="true"></WebBrowser>
</Grid>


如果没有,你能想出一个替代方案吗?

不确定你是否能用WPF WebBrowser解决这个问题。但是,如果使用,您可以轻松实现
IRequestHandler
,并查看不受信任的站点,而不会引起用户的注意

bool IRequestHandler.OnCertificateError(IWebBrowser browserControl, IBrowser browser, CefErrorCode errorCode, string requestUrl, ISslInfo sslInfo, IRequestCallback callback)
{
    if (!callback.IsDisposed)
    {
        using (callback)
        {
            callback.Continue(true);
            return true;
        }
    }

    return false;
}

摘自。非常适合我。

您是否尝试重新配置系统设置?我不确定您是否可以逐个控件控制此设置,是否尝试在操作系统级别重新配置此设置?
WebBrowser
是本机控件的薄包装,因此您很难在WebBrowser控件级别修改此行为。在任何情况下,只要解决问题,而不是寻找解决办法。例如,将目标证书安装到本地计算机以使其受信任。@vasek:不,因为目标是能够发布此证书,而不必在环境端进行管理。@Evk:我知道,但这不是一个选项。或者至少如果应该做些什么(比如安装目标证书),这应该由应用程序来完成。现在就试试。如何指定要使用的
IRequestHandler
?此外,如何仅实现此方法?@J4N您不能仅实现此方法,但是如果您仅复制粘贴上面的示例,则可以实现所需的功能性。使用
web.RequestHandler=new MyRequestHandler()附加处理程序
其中
web
是XAML中的
。我已经测试过了,效果非常好。