2008-08-02 15 views
36

Cargar mi primera aplicación web de un tamaño decente a mi host compartido me proporcionó un nuevo conjunto de desafíos, es decir, noches sin dormir. El problema era que ciertamente no había desarrollado mi aplicación para la confianza media (o tenía alguna pista de lo que era).¿Cómo escribir en Web.Config en Medium Trust?

He mitigado todos los problemas, excepto uno.

Escribí un instalador para que el administrador pueda especificar sus conexiones y otras preferencias, pero no puedo encontrar la forma de escribir en un web.config en confianza media. ¿Alguien tiene una solución, o debería poner las preferencias en otro archivo?

+0

Una solución: http://www.4guysfromrolla.com/articles/100307-1.aspx –

Respuesta

19

Eso realmente suena como el nivel Low de IIS. Si es así, entonces no podrá escribir en ningún archivo, no solo en el archivo web.config.

Éstos son los niveles de archivo de ayuda de IIS:

  • completa (interna) - Especifica los permisos de libre disposición. Otorga los permisos de la aplicación ASP.NET para acceder a cualquier recurso que esté sujeto a la seguridad del sistema operativo. Todas las operaciones privilegiadas son compatibles.
  • alta (web_hightrust.config) - Especifica un alto nivel de seguridad de acceso a código, lo que significa que la aplicación no puede hacer cualquiera de las siguientes cosas por defecto:
    • Call código no administrado.
    • Llame al servicio de componentes.
    • Escriba en el registro de eventos.
    • Acceder a las colas de servicio de Message Queue Server.
    • Acceda a las fuentes de datos de ODBC, OleDb u Oracle.
  • Medio (web_mediumtrust.config) - Especifica un nivel medio de seguridad de acceso a código, lo que significa que, además de las restricciones alto nivel de confianza, la aplicación ASP.NET no puede hacer cualquiera de las siguientes cosas por defecto:
    • Acceda a los archivos fuera del directorio de la aplicación.
    • Acceda al registro.
    • Realizar llamadas a servicios de red o web.
  • Baja (web_lowtrust.config) - Especifica un bajo nivel de seguridad de acceso a código, lo que significa que, además de las restricciones confianza medio nivel, la aplicación no puede hacer cualquiera de las siguientes cosas por defecto:
    • Escribir en el sistema de archivos.
    • Llame al método Assert.
  • mínima (web_minimaltrust.config) - Especifica un nivel mínimo de seguridad de acceso a código, lo que significa que la aplicación sólo se ejecuta permisos.

Yo sugeriría que si está empeñado en tener un instalador, tienen que crear un web.config en la memoria que el usuario puede guardar localmente y FTP después.

+0

Así es como funciona en Microsoft Web Installer cuando no configura los permisos de escritura en la carpeta de la aplicación web. – Sergiu