方法 : XML ファイルを使用してコード グループをインポートする
更新 : 2007 年 11 月
アプリケーションによっては、セキュリティ ポリシーにアプリケーション固有のコード グループを追加する必要がある場合があります。そのようなアプリケーションには、新しいコード グループを実装しているアセンブリと、そのコード グループのシリアル化表現が含まれた XML ファイルが付属している場合があります。この XML ファイルは、.NET Framework 構成ツール (Mscorcfg.msc) を使用してセキュリティ ポリシーにインポートできます。XML ファイルには、対象のコード グループに関連付けられているメンバシップ条件およびアクセス許可セットに関する情報も含まれていることがあります。通常は、このようなアプリケーションは、指定されたメンバシップ条件を満たし、コード グループに関連付けられているアクセス許可セットを必要とします。
XML ファイル内に記述された、コード グループとそれに関連付けられているメンバシップ条件およびアクセス許可セットの情報の例を次に示します。
使用例
<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>
<CodeGroup> 要素には、新しいコード グループの情報が含まれています。class 属性と version 属性は、<CodeGroup> 要素では必須の属性です。class 属性には、新しいコード グループを実装しているクラスおよびアセンブリを指定します。class 属性の値は、「完全修飾型名の指定」で説明されている任意の書式で指定できますが、通常は、この例で示した書式が使用されます。現在のバージョンの .NET Framework の場合、version 属性は "1" になります。Name 属性と Description 属性には任意の有効な文字列を指定でき、編集もできます。Name 属性には、アクセス許可セットの名前を .NET Framework 構成ツールに表示されるとおりに指定します
<IMembershipCondition> 要素には、アセンブリがコード グループのメンバとなり、そのコード グループに関連付けられているアクセス許可を受け取るために満たす必要がある条件を指定する、属性または子要素が含まれます。<IMembershipCondition> の class 属性の書式は、<CodeGroup> の class 属性の書式と同じです。
<CodeGroup> 要素に <IMembershipCondition> 要素と <PermissionSet> 要素が含まれる場合、コード グループがインポートされるときに、そのメンバシップ条件とアクセス許可セットがコード グループに自動的に関連付けられます。これらの要素のうちいずれかが欠けている場合は、.NET Framework 構成ツール (Mscorcfg.msc) を使用して、欠けている要素を新しいコード グループに関連付ける必要があります。詳細については、「.NET Framework 構成ツールを使用したコード グループの設定」を参照してください。