Procedura: importare un gruppo di codice tramite un file XML
In alcune applicazioni può essere necessario aggiungere ai criteri di sicurezza un gruppo di codice specifico dell'applicazione. È possibile che tali applicazioni vengano fornite con un assembly in cui viene implementato il nuovo gruppo di codice e un file XML contenente una serializzazione del nuovo gruppo di codice. È possibile importare il file XML nei criteri di sicurezza utilizzando Caspol.exe (strumento per i criteri di sicurezza dall'accesso di codice). È inoltre possibile che il file XML contenga informazioni sulla condizione di appartenenza e sul set di autorizzazioni associati al gruppo di codice. In genere l'applicazione soddisfa la condizione di appartenenza specificata e necessita del set di autorizzazioni associato.
Nell'esempio che segue viene illustrato come possono essere riportate in un file XML le informazioni relative a un gruppo di codice nonché alla condizione di appartenenza e al set di autorizzazioni a esso associati.
Esempio
<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'elemento <CodeGroup> contiene informazioni relative a un nuovo gruppo di codice. Gli attributi class e version sono necessari per l'elemento <CodeGroup>. L'attributo class fa riferimento alla classe e all'assembly che implementano il nuovo gruppo di codice. Il valore dell'attributo class può essere in uno qualsiasi dei formati illustrati in Specifica di nomi di tipi completi, ma in genere presenta il formato illustrato nell'esempio. Per questa versione di .NET Framework, l'attributo version ha valore "1". Gli attributi Name e Description possono essere costituiti da qualsiasi stringa valida e sono modificabili. L'attributo Name corrisponde al nome del set di autorizzazioni riportato nello strumento .NET Framework Configuration.
L'elemento <IMembershipCondition> contiene attributi o elementi figli che specificano la condizione che è necessario che gli assembly soddisfino per divenire membri del gruppo di codice e riceverne le autorizzazioni associate. L'attributo class di <IMembershipCondition> presenta lo stesso formato dell'attributo class di <CodeGroup>.
Se un elemento <CodeGroup> contiene un elemento <IMembershipCondition> e un elemento <PermissionSet>, la condizione di appartenenza e il set di autorizzazioni vengono associati automaticamente al gruppo di codice al momento dell'importazione. Se uno di questi due elementi non è presente, è necessario utilizzare Caspol.exe (strumento per i criteri di sicurezza dall'accesso di codice) per associare l'elemento mancante al nuovo gruppo di codice. Per informazioni dettagliate, vedere Procedura: visualizzare gruppi di codice tramite Caspol.exe.