Détermination des autorisations accordées
Mise à jour : novembre 2007
Pour les domaines d'application, le jeu d'autorisations accordées est simplement le jeu d'autorisations permises.
Pour les assemblys, le Common Language Runtime prend en considération d'autres facteurs lors du chargement de l'assembly pour déterminer le jeu d'autorisations accordées. Un assembly peut contenir des demandes de sécurité déclaratives spécifiant les autorisations que le code requiert ou souhaite avoir. Le tableau suivant décrit les jeux d'autorisations que le code peut demander.
Jeu d'autorisations |
Description |
---|---|
Requis |
Spécifie le jeu d'autorisations minimum dont le code a besoin pour s'exécuter. |
Facultatif |
Identifie les autorisations que le code souhaite avoir en plus du jeu minimum. Cela entraîne le refus implicite de toutes les autorisations qui ne sont pas identifiées dans le jeu minimal ou le jeu optionnel. |
Refusé |
Spécifie les autorisations qui ne doivent jamais être accordées au code. |
Si les trois demandes d'autorisations sont absentes, l'assembly reçoit simplement le jeu d'autorisations permis par la stratégie. Cependant, si au moins une des trois demandes d'autorisations est présente, le runtime prend en considération les autorisations demandées en appliquant le processus suivant :
Le runtime calcule les autorisations permises pour l'assembly et s'assure que celui-ci est autorisé à exécuter. Si l'autorisation d'exécution n'est pas présente, le runtime lève une PolicyException et le code n'est pas autorisé à s'exécuter.
Le runtime détermine si le jeu des autorisations requises est un sous-ensemble du jeu d'autorisations permises. Sinon, le runtime lève une PolicyException et le code n'est pas autorisé à s'exécuter.
Le runtime recoupe les autorisations facultatives demandées avec le jeu d'autorisations permises. Si des autorisations optionnelles ne sont pas demandées, le PermissionSet optionnel est supposé être FullTrust.
Le runtime unit le résultat de l'étape 3 aux autorisations minimales demandées.
Finalement, le runtime soustrait le résultat de l'étape 4 de toutes les autorisations éventuellement refusées.