Практическое руководство. Импорт групп кода с помощью XML-файла

Для приложения может потребоваться добавление зависящей от приложения группы кода в политику безопасности. Такое приложение может поставляться вместе со сборкой, реализующей новую группу кода, и XML–файлом, содержащим сериализацию этой новой группы кода. XML-файл можно импортировать в политику безопасности, используя Caspol.exe (средство настройки политики управления доступом для кода). 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="http://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> содержит атрибуты или дочерние элементы, описывающие условия, которым сборка должна удовлетворять, для того чтобы стать членом группы кода и получить связанные с ней разрешения. Атрибут class для <IMembershipCondition> имеет тот же формат, что и атрибут class для <CodeGroup>.

Если элемент <CodeGroup> содержит элементы <IMembershipCondition> и <PermissionSet>, условие членства и набор разрешений автоматически связываются с данной группой кода при ее импорте. Если хотя бы один из этих элементов отсутствует, для установления связи отсутствующего элемента с новой группой кода следует использовать Caspol.exe (средство настройки политики управления доступом для кода). Дополнительные сведения см. в разделе Практическое руководство. Просмотр групп кода с помощью Caspol.exe.

См. также

Другие ресурсы

Управление политикой безопасности

Импорт компонентов безопасности с помощью XML-файлов