Для доступа к ресурсу, такому,
например, как файл, или для выполнения
определенной операции коду требуются
разрешения Некоторые разрешения даются
каждой сборке политикой безопасности (о
которой еще пойдет речь в этой главе).
Разрешения коду на доступ могут
запрашиваться самим кодом. И тогда, исходя
из политики безопасности для той или иной
сборки, общеязыковая среда выполнения CLR
будет решать, какие разрешения следует
предоставить. О том, как писать
нестандартное разрешение, мы говорить не
будем
Вот некоторые примеры разрешений
коду на доступ:
DNSPermission управляет доступом к имеющимся в
сети серверам доменных имен;
EnvironmentPermission управляет доступом на
чтение или запись переменных среды;
FilelOPermission управляет доступом к файлам и
каталогам;
FileDialogPermission позволяет читать файлы,
выбранные в диалоговом окне Open (Открыть).
Полезно тогда, когда FilelOPermission не
предоставлено;
Ref lectionPermission управляет возможностями
получения доступа к метаданным, не
являющимся общедоступными, и
способностью порождать метаданные,
RegistryPermission управляет возможностью
получать доступ к системному реестру и
изменять его,
SecurityPermission управляет использованием
подсистемы защиты,
SocketPermission управляет возможностью
устанавливать соединения или принимать
их по транспортному адресу;
UlPPermission управляет пользователями
различных средств пользовательского
интерфейса, в том числе и буферами обмена;
WebPermission управляет возможностью
устанавливать соединения или принимать
их по Web-адресу.
Использование этих разрешений
называется защитой доступа для кода (Code Access
Security), потому что в их основе лежит не
личность пользователя, выполняющего код, а
то, имеет ли сам код право предпринять
некоторое действие.