Comment : analyser les problèmes d'autorisations d'assembly à l'aide de Caspol.exe
Mise à jour : novembre 2007
Vous pouvez utiliser l'outil Code Access Security Policy Tool (Caspol.exe) pour résoudre des problèmes liés à des assemblys, par exemple qui empêchent leur exécution, qui leur donnent accès à des ressources protégées ou qui les s'exécutent alors qu'ils ne le devraient pas.
Pour analyser des problèmes liés à la non-exécution d'un assembly
Utilisez les options –all et –resolveperm pour déterminer les autorisations accordées à l'assembly par la stratégie :
caspol –all –resolveperm assembly-file
Déterminez si l'assembly a le droit de s'exécuter en vérifiant si l'indicateur d'exécution est défini dans la classe SecurityPermission. Si l'assembly a les droits d'exécution, le jeu d'autorisations de sécurité sera illimité ou l'attribut Flags inclura l'indicateur d'exécution.
Si l'assembly doit accéder à une ressource protégée (par exemple pour accéder à un disque, créer des fenêtres, écrire dans le Registre, etc.), vérifiez si les autorisations appropriées sont définies.
Étant donné que les autorisations accordées par les niveaux de stratégie de l'entreprise, de l'ordinateur et de l'utilisateur se recoupent, une autorisation doit être définie à tous les niveaux pour qu'un assembly la reçoive. Si l'assembly a des autorisations insuffisantes, vérifiez les autorisations accordées à l'assembly à chaque niveau de stratégie :
caspol –enterprise –resolveperm assembly-file
caspol –machine –resolvepermassembly-file
caspol –user –resolvepermassembly-file
Si l'assembly fait partie d'un groupe de codes dont la condition d'appartenance est trop restrictive ou dont le jeu d'autorisations associé ne contient pas les autorisations nécessaires au fonctionnement de l'assembly, ce dernier ne peut pas fonctionner correctement. Si les autorisations accordées au code sont insuffisantes, vous pouvez créer un nouveau groupe de codes qui accorde les autorisations nécessaires à l'assembly.
Vous pouvez aussi modifier le jeu d'autorisations associé ou la condition d'appartenance de l'un des groupes de codes existants de sorte que l'assembly reçoive les autorisations appropriées. Pour plus d'informations sur la façon de faire ceci, consultez Comment : modifier des groupes de codes à l'aide de Caspol.exe.
Pour analyser un assembly qui accède à des ressources protégées ou s'exécute alors qu'il ne le devrait pas
- Si un assembly fonctionne mais ne le devrait pas ou s'il accède à des ressources auxquelles il ne devrait pas accéder (telles que des ressources requises pour créer des boîtes de dialogue), trop d'autorisations lui ont été probablement accordées. Utilisez l'option –resolveperm pour déterminer les autorisations accordées à l'assembly. Utilisez ensuite l'option –resolvegroups pour déterminer les groupes de codes auxquels il appartient. Modifiez les conditions d'appartenance ou les jeux d'autorisations associés des groupes de codes associés afin de limiter les autorisations accordées à l'assembly.
Voir aussi
Concepts
Modèle de stratégie de sécurité
Référence
Outil Code Access Security Policy Tool (Caspol.exe)
Autres ressources
Résolution de problèmes de stratégie de sécurité à l'aide de Caspol.exe