Compartir a través de


Determinar los permisos concedidos

Nota importanteImportante

En .NET Framework versión 4, Common Language Runtime (CLR) está dejando de proporcionar directivas de seguridad para los equipos.Microsoft recomienda usar las directivas de restricción de software de Windows en lugar de la directiva de seguridad de CLR.La información de este tema se aplica a .NET Framework 3.5 y versiones anteriores; no se aplica a la versión 4 ni a versiones posteriores.Para obtener más información sobre estos y otros cambios, vea Cambios de seguridad en .NET Framework 4.

Para los dominios de aplicación, el conjunto de permisos concedido es simplemente el conjunto de permisos permitido.

Para los ensamblados, Common Language Runtime tiene en cuenta otros factores en tiempo de carga de ensamblados para determinar el conjunto de permisos concedido. Un ensamblado puede contener solicitudes de seguridad declarativas que especifiquen los permisos que el código necesita o desea tener. En la tabla siguiente se describen los conjuntos de permisos que puede solicitar el código.

Conjunto de permisos

Descripción

Required

Especifica los permisos mínimos que el código necesita para ejecutarse.

Opcional

Identifica permisos que el código desea tener, además del conjunto mínimo. Hace que todos los permisos no identificados en el conjunto mínimo o en el conjunto opcional sean rechazados implícitamente.

Refused

Especifica permisos que nunca se deben conceder al código.

Si no existe ninguna de las solicitudes de permisos, el ensamblado recibe simplemente el conjunto de permisos que permite la directiva. Sin embargo, si existe al menos una de las solicitudes de permisos, el motor en tiempo de ejecución tiene en cuenta los permisos solicitados mediante el proceso siguiente:

  1. El motor en tiempo de ejecución calcula los permisos permitidos para el ensamblado y garantiza que éste tiene permiso de ejecución. Si no tiene el permiso de ejecución, el motor en tiempo de ejecución inicia una PolicyException y no se permite que se ejecute el código.

  2. El motor en tiempo de ejecución determina si el conjunto de permisos requeridos es un subconjunto del conjunto de permisos permitido. Si no lo es, el runtime produce una excepción PolicyException y no se permite que se ejecute el código.

  3. El tiempo de ejecución busca la intersección entre los permisos solicitados opcionales y el conjunto de permisos permitido. Si no se solicitan permisos opcionales, se da por supuesto que el conjunto de permisos opcional es FullTrust.

  4. El motor en tiempo de ejecución une el resultado del paso 3 con los permisos mínimos solicitados.

  5. Por último, el tiempo de ejecución resta cualquier permiso que se haya rechazado del resultado del paso 4.

Vea también

Referencia

PolicyException

Otros recursos

Administración de directivas de seguridad