Чтение онлайн

ЖАНРЫ

C# для профессионалов. Том II

Ватсон Карли

Шрифт:

Удаление группы кода

Чтобы удалить созданную группу кода, можно ввести команду:

caspol.exe -remgroup 1.3.2

Она будет запрашивать подтверждение того, что вы хотите изменить политику системы безопасности, и если ответить положительно, она сообщит, что группа удалена.

Необходимо знать, что нельзя удалить группу кода

All Code
, но можно удалить группы кода на уровень ниже, включая группы для
Internet
,
MyComputer
и
LocalIntranet
.

Изменение

полномочий группы кода

Чтобы ослабить или ограничить полномочия, присвоенные группе кода, можно снова использовать

caspol.exe
. Предположим, что мы хотим применить
FullTrust
к зоне
Intranet
. В этом случае сначала мы должны получить метку, которая представляет группу кода
Intranet
:

caspol.exe -listgroups

Вывод показывает группу кода

Intranet
:

Code Groups:

1. All code: Nothing

 1.1 Zone - MyComputer: FullTrust

 1.2. Zone — Intranet: LocalIntranet

1.2.1. All code: Same site Socket and Web.

1.2.2. All code: Same directory FileIO - Read, PathDiscovery

 1.3. Zone - Internet: Internet

1.3.1. All code: Same site Socket and Web.

 1.4. Zone — Untrusted: Nothing

 1.5. Zone — Trusted: Internet

1.5.1. All code: Same site Socket and Web.

После получения метки группы кода

Intranet
вводим вторую команду, чтобы изменить полномочия группы кода:

caspol.exe -chggroup 1.2 FullTrust

Команда будет запрашивать подтверждение изменения политики системы безопасности, и если теперь снова выполнить команду

caspol.exe -listgroups
, можно будет увидеть, что полномочие в конце строки
Intranet
изменилось на
FullTrust
:

Code Groups:

1. All code: Nothing

 1.1. Zone - MyComputer: FullTrust

 1.2. Zone - Intranet: FullTrust

1.2.1. All code: Same site Socket and Web.

1.2.2. All code: Same directory FileIO - Read, PathDiscovery

 1.3. Zone - Internet: Internet

1.3.1. All code: Same site Socket and Web.

 1.4. Zone — Untrusted: Nothing

 1.5. Zone - Trusted: Internet

1.5.1. All code: Same site Socket and Web.

Создание и применение множеств полномочий

Можно создавать новые множества полномочий с помощью команды:

caspol.exe -addpset CustomPermissionSet permissionset.xml

Эта команда определяет, что создается новое множество полномочий с именем

CustomPermissionSet
на основе содержимого указанного файла XML. Файл XML должен содержать стандартный формат, определяющий
PermissionSet
.
Для справки здесь представлен файл множества полномочий для множества полномочий
Everything
, который можно сократить до требуемых размеров:

<PermissionSet class="NamedPermissionSet" version="1" Name="Everything"

 Description="Allows unrestricted access to all resources covered by built in permissions">

 <IPermission class="EnvironmentРеrmission" version="1" Unrestricted="true" />

 <IPermission class="FileDialogPermission" version="1" Unrestricted="true" />

 <IPermission class="FileIOPermission" version="1" Unrestricted="true" />

 <IPermission class="IsolatedStorageFilePermission" version="1" Unrestricted="true" />

 <IPermission class="ReflectionPermission" version="1" Unrestricted="true" />

 <IPermission class="RegistryPermission" version="1" Unrestricted="true" />

 <IPermission class="SecurityPermission" version="1"

Flags="Assertion, UnmanagedCode, Execution, ControlThread, ControlEvidence, ControlPolicy, SerializationFormatter, ControlDomainPolicy, ControlPrincipal, ControlAppDomain, RemotingConfiguration, Infrastructure" />

 <IPermission class="UIPermission" version="1" Unrestricted="true" />

 <IPermission class= "DnsPermission" version="1" Unrestricted="true" />

 <IPermission class="PrintingPermission" version="1" Unrestricted="true" />

 <IPermission class="EventLogPermission" version="1" Unrestricted="true" />

 <IPermission class="SocketPermission" version="1" Unrestricted="true" />

 <IPermission class="WebPermission" version="1" Unrestricted="true" />

 <IPermission class="PerformanceCounterPermission" version="1" "Unrestricted="true" />

 <IPermission class="DirectoryServicesPermission" version="1" Unrestricted="true" />

 <IPermission class="MessageQueuePermission" version="1" Unrestricted="true" />

 <IPermission class="ServiceControllerPermission" version="1" Unrestricted="true" />

</PermissionSet>

Чтобы увидеть все множества полномочий в формате XML, можно использовать команду:

caspol.exe -listpset

При желании применить конфигурационный файл PermissionSet XML к существующему множеству полномочий можно использовать команду:

caspol.exe -chgpset permissionset.xml CustomPermissionSet

Распространение кода с помощью строгого имени

.NET предоставляет возможность сопоставить сборку с группой кода, когда идентичность и целостность сборки подтверждена с помощью строгого имени. Этот сценарий широко используется при распространении сборок через сети, например распространение программного обеспечения через Интернет.

Поделиться с друзьями: