2010-01-02 7 views
10

Estoy escribiendo una extensión de IE (BHO) en C#. Cuando se ejecuta en modo protegido (el nuevo modo compatible con UAC de IE que obliga a todas las extensiones a ejecutarse a baja integridad), falla porque no puede acceder a user.config en la carpeta appdata.Cómo acceder a AppData en IE Modo protegido (desde un BHO administrado)

¿Hay alguna forma de marcar que los archivos sean legibles mediante procesos de menor integridad?

De lo contrario, ¿hay alguna forma de forzar al BHO a funcionar a una integridad de nivel medio?

En su defecto, ¿hay alguna manera de crear un enlace simbólico de baja integridad en las carpetas de baja integridad que apunta a un archivo de integridad media en AppData?

En su defecto, ¿hay alguna manera de forzar a la aplicación a usar un archivo user.config en la carpeta LocalLow? ¿Cómo obtengo la ruta para esta carpeta en .net (no aparece en Environment.SpecialFolder)? ¿Podré recurrir a los usuarios que ejecutan XP o que desactivan el modo protegido, sin perder todos sus datos de configuración de usuario?

+0

No se recomienda escribir extensiones de Internet Explorer en código administrado por razones de rendimiento y confiabilidad. – EricLaw

Respuesta

0

Le sugiero que escriba su propio SettingsProvider que guarda archivos en System.IO.IsolatedStorage.

7

Hay un enfoque que no es especialmente elegante pero puede iniciar otro proceso (intermediario) con integridad de nivel medio que puede hacer el "trabajo sucio" y usar IPC para comunicarse con él. Para hacerte la vida más fácil, te sugiero que uses los sockets para la comunicación porque no requieren un control de seguridad que puede ser complicado cuando tienes comunicación entre procesos con diferentes niveles de integridad.

Para omitir la advertencia de UAC cuando genera un nuevo proceso, puede modificar el script de registro de BHO y agregar algunos valores de registro que informarán al IE para elevar silenciosamente el nuevo proceso a un nivel medio.

Puede encontrar más información aquí: http://msdn.microsoft.com/en-us/library/bb250462(VS.85).aspx#wpm_elebp

+0

encantador, otro MS hackear para permitir que una aplicación de baja confianza inicie una aplicación de mayor confianza. – BlackICE

+5

@David: Excepto que en primer lugar necesitaba High Trust para instalar el BHO. –

+0

Como propietario de esta área desde hace varios años, puedo asegurarle que generalmente esta es la respuesta correcta, y debe ser aceptada. En lugar de enchufes, probablemente debería utilizar conductos con nombre ACL, que funcionan incluso frente a las restricciones de red de AppContainer introducidas en IE10 +. – EricLaw

0

Obtiene un acceso privilegiado de un solo uso durante RegisterBHO. Después de eso, estás en modo protegido.

Si necesita cambiar el almacenamiento a largo plazo durante el tiempo de ejecución de la BHO, he encontrado que el registro es el mejor lugar. Tus cambios solo serán visibles para ti, pero persistirán.

Cuestiones relacionadas