Ответ 1
интерфейс, который необходимо реализовать, - это IHttpSecurity. См. http://jiangsheng.net/2013/07/17/howto-ignoring-web-browser-certificate-errors-in-webbrowser-host/ для примера на основе Windows Forms.
Многие часы поиска не привели к ответу. Мы ищем способ, которым элемент управления .NET WebBrowser может перемещаться по страницам с проблемами безопасности SSL (самозаверяющие сертификаты или несоответствующие имена хостов) без остановки и отображения страницы с ошибкой:
Я уже видел множество закрытых сообщений:
Как отключить окно "Предупреждение безопасности" в элементе управления Webbrowser - не работает, потому что WebBrowser, по-видимому, не использует ServicePointManager
Подавление диалоговых окон управления Hosted WebBrowser - зависит от звания заголовков окон, которые не работают для неанглийской аудитории
С# WebBrowser Control - игнорировать предупреждения безопасности веб-сайта - это было закрыто как дубликат, и ответ просто ссылался на приведенную выше ссылку.
Большинство сообщений в форме указывают на реализацию IInternetSecurityManager, который я сделал, но безрезультатно.
Ответ с постоянным значением для GetSecurityId для всех URL-адресов (с указанием URLZONE_LOCAL_MACHINE или URLZONE_TRUSTED) не работает.
Не помогло следующее:
public unsafe int MapUrlToZone(string url, int* pdwZone, int dwFlags)
{
*pdwZone = 3; // URLZONE_TRUSTED;
return Win32.S_OK;
}
Наконец, я не могу найти способ для ProcessUrlAction иметь какой-либо эффект:
public unsafe int ProcessUrlAction(string url, int dwAction, byte* pPolicy, int cbPolicy,
byte* pContext, int cbContext, int dwFlags, int dwReserved)
{
*((int*)pPolicy) = (int)Win32.UrlPolicy.URLPOLICY_ALLOW;
return Win32.S_OK;
}
Кто-нибудь успешно нашел путь мимо этой страницы предупреждений SSL?
интерфейс, который необходимо реализовать, - это IHttpSecurity. См. http://jiangsheng.net/2013/07/17/howto-ignoring-web-browser-certificate-errors-in-webbrowser-host/ для примера на основе Windows Forms.
Для меня это работает с использованием следующего кода:
' automatically accept HTTPS certificates
ServicePointManager.ServerCertificateValidationCallback = AddressOf AcceptAllCertifications
Надеюсь, это будет полезно;)