Запрет разрешений
К разрешению можно применять
метод Deny (Запретить). Тогда, даже если
политика безопасности и разрешает доступ к
файлу, любая попытка такого доступа будет
безуспешной. Это демонстрируется примером
Simple-PermissionCodeDenial. Вместо того, чтобы
требовать разрешение, мы вызываем метод Deny (Запретить)
объекта FilelOPermission.
try {
fileIOPerm->Deny(); Console::WriteLine(
"File Access Permission Removed"); // "Запретить
доступ к файлу"
}
catch(SecurityException *se)
{
Console::WriteLine(se->Message); // Сообщение
}
Затем мы попытгемся прочитать
файл с помощью метода ReadFile. Вскоре мы
объясним, зачем это дегается внутри другого
метода. Поскольку в этом разрешении было
отказано, то конструктор Filelnf о запустит
исключение SecurityException.
try
{
Filelnfo *f.le = new Filelnfo (filename) ; // имя файла
StreamReade: *sr = file->OpenText() ;
String *tex;; // Строка
text = sr-XeadLine();
while (text != 0)
{
Console. :WriteLine (" {0}", text); text = ;r->ReadLine
();
}
sr->Close ():
}
catch (SecurityE<ception *se)
{
Console: : WrLteLine(
"Could iot read file: {0}",se->Message); //
Сообщение
// "He :мог прочитать файл: {0} "
}
Потом, чтобы шнулировать отказ в
доступе, мы вызываем статический метод
RevertDeny класс; FilelOPermission, и снова пытаемся
прочитать файл. На этот раз файл читать
можно Данный вызов Deny (Запретить) действует
до тех пор, пока содержащий его код не в>звратит
управление вызвавшей программе, или до
следующего вызова метода Deny (Запретить).
RevertDeny удаляет все текущие запросы Deny (Запретить).
FilelOPermissicn: :RevertDeny();
ReadFile();
Затем мы вызывем метод Deny (Запретить),
чтобы еще раз удалить разрешение.
|