Иллюстрированный самоучитель по Architecture .NET

Именованные наборы разрешений. Изменение политики безопасности.

Чтобы показать, как политика безопасности влияет на выполнение кода, рассмотрим пример Policy (Политика). Этот пример, если не учитывать показанный ниже код, аналогичен уже рассмотренному примеру Evidence (Подтверждение). Кроме вывода информации, относящейся к подтверждению, при выполнении примера Policy (Политика) выводится также содержимое файла read.txt.

String *filename = ".\\read.txt"; // Строка
try
{
String *fileWithFullPath = // Строка
Path::GetFullPath(filename); // имя файла
Filelnfo *file = new Filelnfo(filename); // имя файла
StreamReader *sr = file › OpenText(); // файл
String *text; // Строка
text = sr › ReadLine(); // текст
while (text '=0)
// пока (текст1 = 0)
{
Console::WriteLine(text); // текст
text = sr › ReadLine(); // текст
}
sr › Close();
}
catch(Exception *e) // Исключение
{
Console::WriteLine(e › Message); // Сообщение
}

Если, ничего не изменяя в пользовательской политике безопасности, заданной по умолчанию, выполнить программу Policy (Политика), то можно увидеть, что эта программа успешно читает файл Ну, а если сделать в политике описанные ниже изменения, то при попытке прочитать файл выполнение этого примера аварийно завершится с запуском исключения Security Exception (Исключение защиты)

На рис 13.7 показана проводимая по умолчанию пользовательская политика (Сейчас мы работаем не на машинном уровне, а на уровне пользователя).

Теперь, чтобы можно было управлять политикой безопасности для сборки примера Policy (Политика), мы добавим новый именованный набор разрешений, TestStrongName, а также новую именованную кодовую группу, TestStrongNameGroup.

Иллюстрированный самоучитель по Architecture .NET › Защита › Именованные наборы разрешений. Изменение политики безопасности.
Рис. 13.7. Проводимая по умолчанию пользовательская политика

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.