Elemento trust (Esquema de configuración de ASP.NET)

[Esta documentación se proporciona solo para fines preliminares y está sujeta a cambios en versiones posteriores. Se incluye temas en blanco como marcadores].

Configura el nivel de la seguridad de acceso del código (CAS) correspondiente a una aplicación. Utilice este elemento si desea ejecutar una aplicación Web con una confianza menor que Full.

<trust 
   hostSecurityPolicyResolverType ="security policy resolution type"
   legacyCasModel = "[True|False]"
   level="[Full|High|Medium|Low|Minimal]" 
   originUrl="URL"
   permissionSetName = "name of the permission set"
   processRequestInApplicationTrust = "[True|False]" 
/>

Atributos y elementos

En las próximas secciones se describen los atributos, los elementos secundarios y los elementos primarios.

Atributos

Atributo

Descripción

hostSecurityPolicyResolverType

Atributo de cadena opcional.

Especifica un tipo de resolución de directiva de seguridad personalizado. Cuando este atributo está establecido en una cadena vacía, ASP.NET utiliza la directiva predeterminada para determinar los permisos de un ensamblado. La directiva predeterminada para evaluar los permisos concede plena confianza a los ensamblados de la caché global de ensamblados (GAC) y confianza parcial a los otros ensamblados.

Este atributo no puede establecerse en un valor null.

El valor predeterminado es un objeto string vacío.

legacyCasModel

Atributo booleano opcional.

Especifica si la seguridad de acceso del código (CAS) heredada está habilitada.

Cuando la seguridad de acceso del código heredada está habilitada, se aplican las siguientes reglas de seguridad:

  • La directiva de seguridad de acceso del código (CAS) se establece de la combinación de la directiva de equipo y el archivo de directivas de confianza parcial de ASP.NET especificado.

  • Los dominios de aplicación de confianza parcial se revierten a plena confianza en el nivel del dominio de aplicación.

  • Los archivos de confianza parcial heredados en el directorio CONFIG del directorio de instalación de .NET Framework se utilizan en lugar de los nuevos archivos de configuración de confianza parcial situados en el mismo directorio. Los archivos heredados incluyen las condiciones de pertenencia que se encontraron en .NET Framework 1.1 o .NET Framework 2.0 SP1.

  • Se aplican condiciones de pertenencia adicionales para evaluar los permisos. Estas condiciones se definen en archivos de confianza parcial de ASP.NET. El directorio CONFIG que se incluye con .NET Framework 4 contiene archivos de directivas de confianza parcial heredados. Estos archivos incluyen heredado en su nombre y contienen las secciones .NET Framework 2.0 SP1. Estas secciones contienen condiciones de pertenencia no vacías que se necesitan para evaluar la directiva CAS con los ensamblados.

  • Si la aplicación ASP.NET se ejecuta en confianza parcial y el archivo de la directiva de seguridad para el nivel de confianza se asigna a uno de los archivos de configuración de confianza parcial predeterminados, ASP.NET elegirá automáticamente el correspondiente archivo de configuración heredado. Por ejemplo, si la directiva de seguridad se carga normalmente desde Web_mediumtrust.config, en modo heredado ASP.NET carga la directiva de seguridad desde Legacy.web_mediumtrust.config.

El valor predeterminado es false.

level

El atributo String es obligatorio.

Especifica el nivel de confianza con el que se ejecutará la aplicación. Cada nivel de confianza se asigna a un archivo de directivas XML individual que usa un elemento trustLevel en el archivo de configuración. El archivo de directivas muestra el conjunto de permisos concedido por cada nivel de confianza. Para obtener información sobre ASP.NET y los archivos de directivas, vea ASP.NET Trust Levels and Policy Files.

Este atributo puede ser un valor definido por el usuario si hay una asignación de directiva de seguridad coincidente definida en un elemento trustLevel del elemento Elemento securityPolicy (Esquema de configuración de ASP.NET), o uno de los siguientes posibles valores, en orden creciente de restricción.

ValorDescripción
Full Especifica permisos sin restricciones.Concede los permisos de la aplicación ASP.NET para tener acceso a cualquier recurso que esté sujeto a la seguridad del sistema operativo.Se admiten todas las operaciones para las que se tienen privilegios.Esta configuración se denomina Unrestricted en la enumeración AspNetHostingPermissionLevel.
High Especifica un alto nivel de seguridad de acceso del código, lo que significa que la aplicación no puede realizar de forma predeterminada las acciones que figuran a continuación:
  • Llamar a código no administrado.

  • Llamar a los componentes procesados.

  • Escribir en el registro de eventos.

  • Obtener acceso a las colas de Microsoft Message Queuing.

  • Obtener acceso a los orígenes de datos ODBC, OleDb u Oracle.

Medium Especifica un nivel medio de seguridad de acceso del código, lo que significa que, además de las restricciones de High, la aplicación ASP.NET no puede realizar de forma predeterminada ninguna de las acciones siguientes:
  • Obtener acceso a los archivos ubicados fuera del directorio de la aplicación.

  • Obtener acceso al Registro.

  • Realizar llamadas al servicio Web o de red (mediante la clase System.Net.HttpWebRequest, por ejemplo).

Low Especifica un nivel bajo de seguridad de acceso del código, lo que significa que, además de las restricciones de Medium, la aplicación no puede realizar de forma predeterminada ninguna de las acciones siguientes:
  • Escribir en el sistema de archivos.

  • Llame al método Assert.

Minimal Especifica un nivel mínimo de seguridad de acceso del código, lo que significa que la aplicación sólo dispone de permisos de ejecución.

El valor predeterminado es Full (sin restricciones).

originUrl

Atributo String opcional.

Especifica una dirección URL para su uso con el permiso WebPermission restringido que se configura en el nivel de confianza medio. Si se especifica, esta dirección puede utilizarse para algunas clases, como HttpWebRequest, que permiten sólo la conectividad con algunas direcciones URL especificadas por un permiso WebPermission. De este modo funcionarán correctamente los permisos que se basan en la noción de host.

permissionSetName

Atributo de cadena opcional.

Especifica el nombre del conjunto de permisos.

El valor predeterminado es "ASP.Net".

processRequestInApplicationTrust

Atributo Boolean opcional.

Especifica si las solicitudes de página se restringen automáticamente a los permisos configurados en el archivo de directivas de confianza aplicado a la aplicación ASP.NET.

Los archivos de directivas de confianza se especifican en los elementos trustLevel del elemento securityPolicy. Una única directiva de confianza se asigna a una aplicación ASP.NET utilizando el atributo level del elemento trust.

Si su valor es False, las solicitudes ASP.NET pueden ejecutarse potencialmente bajo el nivel de confianza Full, aun cuando el atributo level especifique otro nivel de confianza. A menos que haya motivos específicos para ello, no restablezca el valor predeterminado true de este atributo.

Este atributo es nuevo en la versión 2.0 de .NET Framework.

El valor predeterminado es True.

Elementos secundarios

Ninguno.

Elementos primarios

Elemento

Descripción

configuration

Especifica el elemento raíz necesario de cada archivo de configuración que utilizan las aplicaciones basadas en Common Language Runtime y .NET Framework.

system.web

Especifica el elemento raíz de los valores de configuración de ASP.NET en un archivo de configuración y contiene elementos de configuración que configuran aplicaciones Web ASP.NET y controlan el comportamiento de las aplicaciones.

Comentarios

El elemento trust configura el nivel de seguridad de acceso del código (CAS) correspondiente a una aplicación. Los archivos de directivas de seguridad se asignan a nombres de nivel de confianza del elemento de la colección securityPolicy. El archivo de directivas muestra el conjunto de permisos concedido por el nivel de confianza. El elemento trust especifica qué nivel de confianza debe asignarse a la aplicación ASP.NET. Para obtener información sobre ASP.NET y los archivos de directivas, vea ASP.NET Trust Levels and Policy Files.

De manera predeterminada, las aplicaciones Web se ejecutan con el nivel de confianza Full. Las aplicaciones de plena confianza tienen permisos de acceso a código sin restricciones concedidos por la directiva de seguridad de acceso del código. Estos permisos incluyen permisos personalizados y de sistema integrados. Esto significa que la seguridad de acceso del código no evitará que su aplicación tenga acceso a cualquier recurso protegido. Lo que determina que el intento de acceso al recurso pueda llegar a materializarse o no depende estrictamente de la seguridad en el nivel de sistema operativo. Si una aplicación está configurada con un nivel de confianza distinto de Full, se denomina aplicación de confianza parcial. Las aplicaciones de confianza parcial tienen restringidos los permisos, lo que limita el acceso a los recursos protegidos de la aplicación.

Para mejorar la seguridad en un entorno hospedado, utilice el elemento location del archivo Web.config raíz para encerrar los elementos securityPolicy y trust de las aplicaciones hospedadas, y el atributo allowOverride="False" para impedir que las aplicaciones reemplacen la configuración en un archivo Web.config más local. De manera opcional, puede utilizar varios elementos location, cada uno con un atributo de ruta de acceso diferente, si desea configurar niveles de confianza diferentes para distintas aplicaciones hospedadas. Para obtener un ejemplo de este tipo de configuración, vea la sección "Ejemplo" que figura más adelante.

Nota

Las aplicaciones Web compiladas con la versión 1.0 de .NET Framework siempre se ejecutan con el nivel de confianza Full porque los tipos de System.Web requieren llamadores de plena confianza.Cuando actualice a una versión más reciente de .NET Framework, no cambie el nivel de confianza sin comprobar las aplicaciones previamente existentes.

Configuración predeterminada

El elemento trust predeterminado se configura en el archivo Web.config de la raíz.

<location allowOverride="true">
<system.web>
   <securityPolicy>
      <trustLevel name="Full" policyFile="internal" />
      <trustLevel name="High" policyFile="web_hightrust.config" />
      <trustLevel name="Medium" policyFile="web_mediumtrust.config" />
      <trustLevel name="Low" policyFile="web_lowtrust.config" />
      <trustLevel name="Minimal" policyFile="web_minimaltrust.config"/>
   </securityPolicy>
   <trust 
      level="Full" 
      originUrl="" 
      processRequestInApplicationTrust="true" 
   />
</system.web>
</location>

Ejemplo

En el ejemplo de código siguiente se muestra cómo utilizar un archivo Web.config raíz para especificar los valores de configuración del nivel de confianza Medium para todas las aplicaciones ASP.NET en el servidor, y el elemento location para bloquear la configuración. Se utiliza otro elemento location del mismo archivo de configuración para que el archivo Web.config de la aplicación Default Web Site/Temp pueda reemplazar la configuración en el archivo Web.config raíz.

<location allowOverride="false">
  <system.web>
    <securityPolicy>
      <trustLevel name="Full" policyFile="internal" />
      <trustLevel name="High" policyFile="web_hightrust.config" />
      <trustLevel name="Medium" policyFile="web_mediumtrust.config" />
      <trustLevel name="Low"  policyFile="web_lowtrust.config" />
      <trustLevel name="Minimal" policyFile="web_minimaltrust.config"/>
    </securityPolicy>
  </system.web>
</location>

<location allowOverride="false">
  <system.web>
    <trust level="Medium" originUrl="" />
  </system.web>
</location>

<location allowOverride="true" path="Default Web Site/Temp">
  <system.web>
    <trust level="Medium" originUrl="" />
  </system.web>
</location>

Información de elemento

Controlador de la sección de configuración

TrustSection

Miembro de configuración

AspNetHostingPermission

Ubicaciones configurables

Machine.config

Web.config del nivel raíz

Web.config del nivel de aplicaciones

Requisitos

Microsoft Internet Information Services (IIS) versión 5.0, 5.1 ó 6.0

.NET Framework 1.0, 1.1 ó 2.0

Microsoft Visual Studio 2003 o Visual Studio 2005

Vea también

Tareas

How to: Configure Specific Folders Using Location Settings

How to: Lock ASP.NET Configuration Settings

Referencia

Elemento system.web (Esquema de configuración de ASP.NET)

Elemento configuration (Esquema de configuración general)

Elemento trustLevel para securityPolicy (Esquema de configuración de ASP.NET)

Elemento securityPolicy (Esquema de configuración de ASP.NET)

System.Configuration

System.Net.Configuration

TrustSection

AspNetHostingPermission

Conceptos

ASP.NET Trust Levels and Policy Files

ASP.NET Trust Levels and Policy Files

Securing Configuration

Configuration Inheritance

Otros recursos

ASP.NET Web Application Security

Administering Security Policy

Opciones de configuración generales (ASP.NET)

Opciones de configuración de ASP.NET

Configuring ASP.NET Applications

ASP.NET Configuration Files

ASP.NET Configuration API