2011-08-03 21 views
13

Muchas horas de búsqueda no han dado respuesta. Estamos buscando una manera de que un control .NET WebBrowser puede navegar a páginas con problemas de seguridad SSL (certificados auto-firmados o nombres de host no coincidentes) sin detenerse y mostrar la página de error:Control WebBrowser: ignore los errores SSL

http://imgur.com/Uqt7H

I 've ya visto muchos mensajes que están cerca:

How to disable “Security Alert” window in Webbrowser control - no funciona porque WebBrowser aparentemente no utiliza el ServicePointManager

Suppressing Hosted WebBrowser Control Dialogs - depende de conocer los títulos de ventanas, que no funciona para una audiencia no inglesa

C# WebBrowser Control - ignore website security warnings - esto se cerró como un duplicado, y la respuesta solo hace referencia al enlace anterior.

La mayoría de las publicaciones del formulario sugieren implementar IInternetSecurityManager, lo cual hice, pero fue en vano.
Respondiendo con un valor constante para GetSecurityId para todas las URL (especificando URLZONE_LOCAL_MACHINE o URLZONE_TRUSTED) no funciona.

El siguiente no se ayude:

public unsafe int MapUrlToZone(string url, int* pdwZone, int dwFlags) 
{ 
    *pdwZone = 3; // URLZONE_TRUSTED; 
    return Win32.S_OK; 
} 

Por último, me parece que no puede encontrar un camino para ProcessUrlAction tenga efecto:

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; 
} 

Alguien ha encontrado con éxito una mucho más allá de esa página de advertencia de SSL?

Respuesta

-1

Para mí que está funcionando con el siguiente código:

' automatically accept HTTPS certificates 
ServicePointManager.ServerCertificateValidationCallback = AddressOf AcceptAllCertifications 

Esperamos que sea útil;)

Cuestiones relacionadas