Практическое руководство. Импорт групп кода с помощью XML-файла
Обновлен: Ноябрь 2007
Для приложения может потребоваться добавление зависящей от приложения группы кода в политику безопасности. Такое приложение может поставляться вместе со сборкой, реализующей новую группу кода, и 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> содержит атрибуты или дочерние элементы, описывающие условия, которым сборка должна удовлетворять, для того чтобы стать членом группы кода и получить связанные с ней разрешения. Атрибут class для <IMembershipCondition> имеет тот же формат, что и атрибут class для <CodeGroup>.
Если элемент <CodeGroup> содержит элементы <IMembershipCondition> и <PermissionSet> , условие членства и набор разрешений автоматически связываются с данной группой кода при ее импорте. Если хотя бы один из этих элементов отсутствует, для установления связи отсутствующего элемента с новой группой кода следует использовать инструмент настройки .NET Framework (Mscorcfg.msc). Дополнительные сведения см. в разделе Настройка групп кода с помощью инструмента настройки .NET Framework.