Hosts de dominio de aplicación
Cada aplicación .NET Framework se ejecuta en un dominio de aplicación bajo el control de un host que crea el dominio de aplicación y carga los ensamblados en él. El host tiene acceso a información sobre el código (evidencia), como la zona en que se origina o las firmas digitales de los ensamblados del dominio de aplicación. Un host de confianza es el que tiene permiso para proporcionar al Common Language Runtime este tipo de información. La clase System.AppDomain proporciona al dominio de aplicación la funcionalidad que utilizan los hosts.
En la siguiente tabla se muestran los tipos de hosts de aplicación.
Host de dominio de aplicación | Descripción |
---|---|
Host explorador (por ejemplo, Microsoft Internet Explorer) |
Ejecuta código en el contexto de un sitio Web. |
Hosts de diseño personalizado |
Crea dominios y carga ensamblados en los dominios, incluidos ensamblados dinámicos. Se puede escribir en código administrado o no administrado. |
Host de servidor (por ejemplo, ASP.NET) |
Ejecuta código que controla las solicitudes enviadas a un servidor. |
Host de Shell |
Inicia aplicaciones (archivos .exe) desde el shell. |
Después de crear un nuevo dominio de aplicación, un host puede especificar la directiva que se debe aplicar al código de dicho dominio. Esta directiva siempre está sometida a la directiva de empresa, equipo y usuario. Un host puede reducir el conjunto de permisos que permiten las directivas de equipo y usuario, pero no puede ampliarlo. La directiva sólo se puede establecer una vez para un dominio de aplicación. Para establecer la directiva de dominio de aplicación, el host debe recibir el permiso de seguridad (que se concede mediante la clase SecurityPermission) para controlar la directiva de dominio.
Una vez que se ha establecido la directiva de dominio, todos los ensamblados que se carguen posteriormente reciben los permisos de la nueva directiva: empresa, equipo, usuario y dominio de aplicación. Los ensamblados que ya se habían cargado sólo obtienen las concesiones de permiso de la directiva anterior: sólo empresa, equipo y usuario. Los permisos concedidos a estos ensamblados no se vuelven a evaluar bajo la nueva directiva de dominio de aplicación.
Un host de confianza puede proporcionar información (evidencia) al tiempo de ejecución sobre los ensamblados que se carguen en el dominio de aplicación. Si un host de dominio no tiene el SecurityPermission adecuado para controlar la evidencia, el motor en tiempo de ejecución utiliza la seguridad impuesta al host para determinar la seguridad que se debe imponer en el ensamblado.
En ciertas situaciones, la evidencia que normalmente proporcionaría un dominio de aplicación de confianza la proporciona en realidad el cargador. Normalmente, después de crear un dominio de aplicación, el host de dominio de aplicación carga el primer ensamblado (el principal) en el dominio de aplicación y llama al ensamblado para que comience la ejecución. Cuando en el código del primer ensamblado se hace referencia a código de otro ensamblado, el cargador resuelve la referencia, carga el ensamblado adecuado en el dominio de aplicación y proporciona la evidencia sobre el ensamblado al motor en tiempo de ejecución. En esta situación, el host de dominio de aplicación de confianza que proporcionó la evidencia para el ensamblado original no lo hace para los ensamblados cargados con posterioridad.