Architecture Net


         

Изменение политики безопасности - часть 4


Если вы изменили какую-либо политику, то в конце ее названия также появится звездочка, указывая, что эти изменения еще не сохранены. Чтобы их сохранить, щелкните правой кнопкой на узле политики User (Пользователь) и выберите команду Save (Сохранить).
Теперь это разрешение следует связать с кодовой группой, причем этой группе должна быть назначена сборка Policy.exe. Именем новой кодовой группы будет TestStrong-NameGroup. Данная группа создается путем выбора родительской группы (в нашем случае это All_Code) и затем в контекстном меню — команды New (Создать). Далее надо ввести нужную для мастера информацию. Появится диалоговое окно Create Code Group (Создать кодовую группу), которое заполняется так, как показано на рис. 13.12.
Введя в это окно нужную информацию, щелкните на кнопке Next (Далее). Тогда будет выведен второй экран диалога Create Code Group (Создать кодовую группу), который дает возможность указать условие членства кода в группе. Сборкам, удовлетворяющим указанному условию, будут предоставлены разрешения, относящиеся к этой кодовой группе. В поле со списком выберите, как на рис. 13.13, набор разрешений StrongName. Кроме того, укажемте открытый ключ для строгого имени сборки Policy.exe. Этот открытый ключ выводится при запуске программы Policy.exe; его также можно получить из сборки с помощью Ildasm.exe.
Щелкните на кнопке Next <Далее) — и вы увидите третий экран диалога Create Code Group (Создать кодовую груп пу), который дает возможность назначить кодовой группе тот или иной набор разрешений. Б$ ыберите созданный ранее набор TestStrongName (рис. 13.14).
После этого щелкните на кнопке Next (Далее), а затем — на кнопке Finish (Готово). Теперь надо будет сохранить политику в узле User (Пользователь); с этой целью нужно щелкнуть на узле правой кнопкой мыши и выбрать команду Save (Сохранить).

12.gif

Рис. 13.12. Создаг-tue кодовой группы TestStrongNameGroup

13.gif

Рис. 13.13. Задание условия для кодовой группы TestStrongNameGroup

Чтобы просмотреть сделанные вами изменения, в сервисной программе администрирования .NET Admin Tool щелкните на TestStrongNameGroup и выберите Properties (Свойства). На рис. 13.15 показано, что группа TestStrongNameGroup связана со строгим именем в сборке policy.exe. А на рис. 13.16 видно, что эта группа связана с набором разрешений TestStrongName.
На вкладке General (Общие) установите, как показано на рис. 13.17, флажок "This policy level will only have the permissions from the permission set associated with this code group" ("Этот уровень политики будет иметь разрешения только из набора разрешений, связанного с данной кодовой группой").
Установка этого флажка означает, что для сборки будут использоваться только те разрешения, которые явно указаны в наборе разрешений. Если флажок не будет установлен, то вы не сможете увидеть запуск исключения безопасности, когда программа Policy (Политика) попытается что-либо записать в файл. Щелкните на кнопке ОК. Затем щелкните правой кнопкой на узле User (Пользователь) и выберите команду Save (Сохранить).
Вспомните, что в созданный ранее набор разрешений TestStrongName не было добавлено FilelOPermission. Еще вспомните, что программа Policy.exe пытается читать файл. Чтобы опять увидеть результат такого чтения, снова запустите Policy.exe. Теперь вы заметите, что эта программа запустила исключение безопасности (Security exception), потому что в связанном с ней наборе разрешений нет FilelOPermission.
На рис. 13.18 показаны новая кодовая группа, которая называется TestStrongNameGroup, а также новый набор разрешений. Этот набор разрешений называется TestStrongName. Он был добавлен на уровне политики пользователя, чтобы управлять политикой безопасности для сборки Policy (Политика).




Содержание  Назад  Вперед