Win2003 ASP.NET - Herencia de configuración

  

Cuando el servidor recibe una solicitud para un recurso web específico, ASP.NET usa los archivos de configuración en la ruta del directorio virtual de la URL solicitada para calcular jerárquicamente la configuración del recurso. Configuraciones Por ejemplo, tiene un sitio web con la siguiente estructura de archivos, donde la raíz de la aplicación es el directorio virtual de la aplicación (Vdir).


En circunstancias normales, el último ajuste de configuración anula los ajustes para la misma sección proporcionada en el directorio principal, pero el controlador de la sección puede realizar un esquema de herencia diferente.

Por ejemplo, como administrador, puede configurar las opciones de su aplicación para permitir que todos los usuarios accedan a los recursos de ASP.NET en la raíz de la aplicación (es decir, la ruta física que se asigna al directorio virtual de la aplicación). Solo los usuarios seleccionados pueden acceder a los recursos de ASP.NET en ambos subdirectorios.

Suponga que hay un archivo Web.config en el directorio SubDir1 pero no en la raíz de la aplicación o en el directorio SubDir2. En este caso, ASP.NET utiliza dos archivos de configuración. El archivo de nivel más alto es el archivo ubicado en el directorio systemroot \\ Microsoft .NET \\ Framework \\ versionNumber \\ CONFIG. El archivo se llama Machine.config, que es un archivo a nivel de computadora, y todos los directorios y subdirectorios de ASP.NET heredan su configuración. Machine.config se proporciona con .NET Framework y contiene muchas configuraciones predeterminadas de ASP.NET. La configuración predeterminada de la sección Configuración de seguridad del archivo permite a todos los usuarios acceder a todos los recursos de URL. No hay ningún archivo de configuración que modifique la seguridad en la raíz de la aplicación de muestra, por lo que todos los usuarios tienen acceso a los recursos de ASP.NET (porque el directorio hereda la configuración del archivo de configuración a nivel de computadora). SubDir2 hereda esta configuración si el archivo Web.config en el directorio SubDir1 contiene una sección de configuración de seguridad que solo permite el acceso parcial de usuarios. Por lo tanto, todos los usuarios tienen acceso a los recursos ASP.NET en la raíz de la aplicación, pero solo algunos usuarios pueden acceder a los recursos ASP.NET en SubDir1 y SubDir2.

La configuración del directorio virtual es independiente de la estructura física del directorio. El directorio virtual debe organizarse cuidadosamente para evitar problemas de configuración. Por ejemplo, puede haber una aplicación llamada MyResource.aspx con la siguiente estructura de directorio físico.

C: \\ Subdir1 \\ Subdir2 \\ MyResource.aspx

Suponiendo que el archivo de configuración está en Subdir1, el directorio virtual llamado Vdir1 se asigna a una asignación de directorio virtual llamada cdir2 en c: \\ Subdir1 Vaya a c: \\ Subdir1 \\ Subdir2. Si el cliente accede a un recurso con la ruta física c: \\ Subdir1 \\ Subdir2 \\ MyResource.aspx usando la URL  http: //localhost/vdir1/subdir2/MyResource.aspx, el recurso hereda la configuración de Vdir1. Sin embargo, si el cliente utiliza la URL http: //localhost/vdir2/MyResource.aspx para acceder al mismo recurso, el recurso no hereda la configuración de Vdir1. Por lo tanto, crear un directorio virtual de esta manera puede tener consecuencias imprevistas e incluso puede hacer que la aplicación no funcione. No recomendamos que hagas esto.

Nota El sistema de configuración de ASP.NET solo funciona con recursos de ASP.NET (recursos registrados con Aspnet_isapi.dll para su procesamiento por ASP.NET). De forma predeterminada, el sistema de configuración no proporciona autorización para recursos que no sean de ASP.NET. Por ejemplo, todos los usuarios pueden acceder a los archivos ASP, HTML, TXT, GIF y JPEG. En el ejemplo anterior, si la búsqueda de directorios está habilitada y no hay otras restricciones, todos los usuarios pueden ver archivos que no sean ASP.NET en la raíz de la aplicación, SubDir1 y SubDir2. Para obtener más información sobre la seguridad de ASP.NET, consulte Seguridad de ASP.NET.


Configuración de < location >
Puede aplicar los ajustes de configuración a recursos específicos utilizando la etiqueta < location > con el atributo de ruta apropiado. El atributo de ruta se puede usar para indicar un archivo o subdirectorio específico al que se aplican ajustes de configuración especiales.

Por ejemplo, los siguientes archivos de configuración especifican la configuración en tres niveles:

La configuración se aplica al directorio actual y a todos los subdirectorios, es decir, todo lo que se encuentra en la etiqueta < configuration > .
La configuración aplicada al subdirectorio Sub1, que contiene todo en la etiqueta < location > con la propiedad de ruta establecida en Sub1.
La configuración aplicada al subdirectorio Sub2, que contiene todo en la etiqueta < location > con la propiedad de ruta establecida en Sub2.
< configuración >
< system.web >
< sessionState cookieless = "verdadero" timeout = " 10 " />
< /system.web>

<! - " Sub1 " Configuración del subdirectorio. - >
< location path = " sub1 " >
< system.web >
< httpHandlers >
< add verb = " * " path = "; Sub1.Scott " tipo = " Sub1.Scott " />
< add verb = " * " path = " Sub1.David " type = " Sub1.David " />
< /httpHandlers >
< /system.web>
< /ubicación >
< - "! Sub2 " configuración subdirectorio. - >
< location path = " sub2 " >
< system.web >
< httpHandlers >
< add verb = " * " path = "; Sub2.Scott " tipo = " Sub2.Scott " />
< add verb = " * " path = " Sub2.David " type = " Sub2.David " />
< /httpHandlers >
< /system.web>
< /location >
< /configuration >


Bloquear la configuración
Por defecto El archivo de configuración ubicado en el subdirectorio anula y extiende todos los ajustes de configuración definidos en el archivo de configuración principal. En un escenario de alojamiento de aplicaciones, los administradores generalmente bloquean o evitan que otros accedan a ciertas configuraciones en el sitio para evitar que estas configuraciones se modifiquen. Por ejemplo, es posible que un administrador desee bloquear la configuración de seguridad de la zona de pruebas de una aplicación host para evitar que los usuarios web ataquen el sistema.

Los administradores pueden bloquear los ajustes de configuración agregando el atributo allowOverride = " false " a la directiva < location >. Notifica al sistema de configuración que se produce un error si el archivo de configuración de bajo nivel intenta anular cualquiera de las secciones de configuración definidas en esta directiva de bloqueo < ubicación >.

El siguiente archivo de configuración de muestra (que se puede almacenar a nivel del sistema principal o del sitio) bloquea el nivel de confianza de dos aplicaciones ASP.NET diferentes (aplicación1 y aplicación2).

< configuración >
< ubicación path = " application1 " allowOverride = " false " >
< system.web >
< nivel de confianza = " Alto " />
< /system.web>
< /ubicación >
< ruta de ubicación = " application2 " allowOverride = " falso " >
< System.web >
< trust level = " Medio " />
< /system.web>
< /location >
< /configuration >
Si se utiliza Los ajustes de configuración en el ejemplo a continuación anulan los ajustes de configuración en el ejemplo anterior y se genera un error del sistema de configuración.

< configuración >
< system.web >
< nivel de confianza = " Completo " />
< /system.web>
< /Configuración >

Copyright © Conocimiento de Windows All Rights Reserved