Comment : importer un groupe de codes à l'aide d'un fichier XML

Une application peut nécessiter l'ajout à la stratégie de sécurité d'un groupe de codes spécifique à l'application. L'application peut être fournie avec un assembly qui implémente le nouveau groupe de codes et un fichier XML qui contient une sérialisation du nouveau groupe de codes. Le fichier XML peut être importé dans la stratégie de sécurité à l'aide de Caspol.exe (outil Stratégie de sécurité d'accès du code). Le fichier XML peut également contenir des informations sur la condition d'appartenance et le jeu d'autorisations associés au groupe de codes. Généralement, l'application remplit la condition d'appartenance spécifiée et nécessite le jeu d'autorisations associé.

L'exemple suivant montre comment les informations relatives à un groupe de codes ainsi qu'à sa condition d'appartenance et à son jeu d'autorisations associés peuvent apparaître dans un fichier XML.

Exemple

<CodeGroup class="System.Security.Policy.UnionCodeGroup, mscorlib,
           Version=1.0.2411.0, Culture=neutral,
           PublicKeyToken=b77a5c561934e089" version="1"
           Name="myCodeGroup"
           Description="test code group">
   <IMembershipCondition class="MyCustomMembershipCondition, myAssembly,
       Version=1.0.0.0, Culture=neutral,
       PublicKeyToken=b77a5c561934e089" version="1"
       Url="https://www.microsoft.com/"/>
 
   <PermissionSet class="NamedPermissionSet" version="1"
       Name="MyPermissionSet"
       Description="Permission set containing my custom permission">
          <IPermission class="myCustomNamespace.CustomPermission,
             customPerm, Version=0.0.0.0, Culture=neutral,
             PublicKeyToken=64a85a7d791b1a32"  version="1"
             Unrestricted="True"/>
   </PermissionSet>
</CodeGroup>

L'élément <CodeGroup> contient des informations relatives à un nouveau groupe de codes. Les attributs class et version sont requis pour l'élément <CodeGroup>. L'attribut class pointe vers la classe et l'assembly qui implémentent le nouveau groupe de codes. La valeur de l'attribut class peut avoir n'importe quel format décrit dans Spécification des noms de types qualifiés complets, mais aura généralement le format présenté dans l'exemple. Pour cette version du .NET Framework, l'attribut version est égal à "1". Les attributs Name et Description peuvent correspondre à toute chaîne valide et être modifiés. L'attribut Name est le nom du jeu d'autorisations tel qu'il apparaît dans l'outil .NET Framework Configuration.

L'élément <IMembershipCondition> contient des attributs ou des éléments enfants qui spécifient la condition que les assemblys doivent remplir pour faire partie du groupe de codes et recevoir ses autorisations associées. L'attribut class de <IMembershipCondition> a le même format que l'attribut class de <CodeGroup>.

Si un élément <CodeGroup> contient un élément <IMembershipCondition> et un élément <PermissionSet>, la condition d'appartenance et le jeu d'autorisations sont associés automatiquement au groupe de codes lorsqu'il est importé. Si l'un ou l'autre de ces éléments manque, vous devez utiliser Caspol.exe (outil Stratégie de sécurité d'accès du code) pour associer l'élément manquant au nouveau groupe de codes. Pour plus d'informations, consultez Comment : afficher les groupes de codes à l'aide de Caspol.exe.

Voir aussi

Autres ressources

Gestion de la stratégie de sécurité

Importation de composants de sécurité à l'aide de fichiers XML