Calcular el conjunto de permisos permitido
Common Language Runtime calcula el conjunto de permisos permitido para los dominios de aplicación y los ensamblados recorriendo las jerarquías de grupos de código de los niveles de directiva correspondientes. Para los dominios de aplicación, los niveles de directiva correspondientes son los de empresa, equipo y usuario. Para los ensamblados, los niveles de directiva correspondientes son los de empresa, equipo, usuario y dominio de aplicación.
El motor en tiempo de ejecución utiliza el proceso siguiente para calcular el conjunto de permisos permitido:
Para cada nivel de directiva correspondiente, el motor en tiempo de ejecución utiliza información de identidad proporcionada por la prueba para determinar a qué grupos pertenece el código. Si el código es miembro de un grupo, se dice que ese grupo es una coincidencia.
La búsqueda de una coincidencia comienza en la parte superior de la jerarquía de grupos de código del grupo de todo el código. El motor en tiempo de ejecución busca en los niveles de la jerarquía, incluidos los grupos secundarios si se encuentra una coincidencia en algún grupo primario.
Una vez que se han identificado todas las coincidencias de la jerarquía, los permisos asociados a cada grupo de código coincidente se combinan por adición (una unión), lo que produce el conjunto de permisos permitido para ese nivel de directiva.
El motor en tiempo de ejecución calcula el conjunto de permisos permitido de forma distinta si se aplican los atributos Exclusive o LevelFinal al grupo de código. Para obtener más información, vea Atributos de grupo de código.
El motor en tiempo de ejecución repite la búsqueda en la jerarquía y busca el punto de intersección entre los conjuntos de permisos para cada nivel de directiva para calcular el conjunto de permisos permitido para el dominio de aplicación o el ensamblado. El conjunto de permisos resultante contiene sólo los permisos permitidos para todos los niveles de directiva.
En la ilustración siguiente se muestra una jerarquía de grupos de código en la que Microsoft® Money pertenece a cuatro grupos de código: todo el código, Microsoft (el editor), Internet local (la zona) y Microsoft Money (el nombre). El conjunto de permisos permitido para un nivel de directiva dado (equipo, usuario o dominio de aplicación) es la combinación por adición (la unión) de los conjuntos de permisos con nombre asociados con cada uno de esos grupos de código.
Jerarquía de grupos de código