К разрешению можно применять метод 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 (Запретить), чтобы еще раз удалить разрешение.