Подтвердить что ты не робот

Управление WebBrowser - игнорирование ошибок SSL

Многие часы поиска не привели к ответу. Мы ищем способ, которым элемент управления .NET WebBrowser может перемещаться по страницам с проблемами безопасности SSL (самозаверяющие сертификаты или несоответствующие имена хостов) без остановки и отображения страницы с ошибкой:

http://imgur.com/Uqt7H

Я уже видел множество закрытых сообщений:

Как отключить окно "Предупреждение безопасности" в элементе управления 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?

4b9b3361

Ответ 2

Для меня это работает с использованием следующего кода:

' automatically accept HTTPS certificates
ServicePointManager.ServerCertificateValidationCallback = AddressOf AcceptAllCertifications

Надеюсь, это будет полезно;)