IInternetSecurityManager personalizado no se llama con cuadros de diálogo

Hola y gracias por mirar.

Descripción del problema:

He implementado una aplicación c # WinForm con el control del navegador incorporado y he implementado IInternetSecurityManager para realizar las tareas que necesitamos a fin de permitir el acceso entre dominios en iframes con nuestras páginas web instaladas localmente.

Todas las cosas funcionan como se espera con IInternetSecurityManager, IOleClientSite, IDocHostShowUI e IDocHostUIHandler. En otras palabras, el control del navegador nos llama para todas nuestras implementaciones.

El problema es cuando la página web cargada en el control del navegador tiene un script que llama a window.showModalDialog (): la instancia de control del navegador que se está utilizando ya no se comunica con nuestro sitio cliente. Absolutamente ninguna llamada a QueryInterface ni ningún otro método se llama en ninguna de las interfaces mencionadas anteriormente.

El documento en el cuadro de diálogo no está utilizando nuestra implementación de administrador de seguridad, supongo porque el control del navegador web en el cuadro de diálogo que muestra IE no es el mismo que llamamos SetClientSite ().

Pregunta:

¿Cómo hablamos con este nuevo control de navegador? Necesitamos poder dar control al navegador en el diálogo que muestra IE, nuestra implementación IInternetSecurityManager. Pero, nunca tenemos la oportunidad de contarle sobre el sitio de nuestro cliente para conectar, por así decirlo. En otras palabras, no hay comunicación de IE que nos diga a través de una interfaz que diga: "Soy un nuevo control de navegador creado por IE y aquí está mi interfaz IUnknown. Esta es su oportunidad de configurar mi sitio de cliente, etc." Seríamos dorados si hubiera tal notificación proveniente de IE.

El resultado es que se están utilizando dos contextos de seguridad diferentes y nuestra aplicación falla cada vez que estamos en un diálogo usando un iframe, porque nuestra implementación IInternetSecurityManager no está en uso.

Código fuente de ejemplo:

Me he quitado el código fuente para proteger a los inocentes :) y me he reducido a algo con lo que creo que puedes trabajar en su propia solución de Visual Studio 2010.

Lea el archivo ReadMe.txt para obtener información sobre el problema, los pasos de reproducción, etc.

Las páginas web de prueba que escribí muestran información y pasos para guiarlo a través del uso de la muestra.

Avíseme si tiene preguntas sobre lo que estoy tratando de lograr o si la muestra no es lo suficientemente clara.

Por favor avise. Gracias.

http://home.comcast.net/~lowrider2112/bin/TestIEHost.rar

Respuestas a la pregunta(2)

Su respuesta a la pregunta