на начало
На главную страницу
Форум   

Статья :: Разрешения на основе атрибутов


Разрешения на основе атрибутов

Пример SimplePermissionAttributeRequest показывает, как использовать атрибуты для выдачи запросов на те или иные разрешения. В этом примере атрибут нужен для того, чтобы передать метаданные в сборку, для запуска которой требуется разрешение Centres JLPrincipal. Таким образом можно заранее узнать, какие компоненты конфликтуют с политикой безопасности.

[assembly: Secur: i_t у Permission (
SecurityAc t ion: : RequestMinimum,
ControlPrinc:ipal=true) ] ;
public _gc class PermAttrib
// класс сборицхнгка мусора PermAttrib
{
public:
static int Imain()
{

В перечислении SecurityAction имеется несколько значений, часть из которых можно применягь к: классу или методу, а часть, как в этом примере, — к сборке. К сборкам применяются RequestMinimum, RequestOptional И RequestRefuse. RequestMinimu-m указывает на те метаданные, чьи разрешения необходимы для запуска сборки. Reques-tOjptional указывает на те разрешения метаданных, которые сборке неплохо бы им:еть., но без которых, впрочем, она все-таки может выполняться. RequestRefuse указывает на те разрешения, от которых сборка хотела бы отказаться15.
Если в примере SimplePermissionAttributeRequest значение атрибута поменять на RequestRefuse, а затем этот пример запустить, то хотя сборка и будет загружена, попытка изменить политику приведет к запуску исключения SecurityException.
Остальные значения применяются к классам и методам. Значение LinkDemand нужно тогда, когда делается ссылка на некоторый тип. При этом требуется, чтобы непосредственно вызвавшая программа имела разрешение. Другие значения применяются во время выполнения. InheritanceDemand требует, чтобы разрешение имелось у производного класса. Assert (Утвердить), Deny (Запретить), PermitOnly и Demand (Требование) требуют именно то, что от них можно ожидать.
Вот пример требования FilelOPermission, применяемого к классу с помощью атрибута. Для файла требуется Al lAcce s s. Надо обязательно указывать полный путь к файлу.

[FilelOPermission(
SecurityAction::Demand,
All = "c:\\foo\\read.txt")]
public class Simple
// общедоступный Простой класс
{
};


Разрешения на основе атрибутов

страницы в данном разделе 
Глава 13. Защита Защита
Защита на основе пользователей Защита доступа к коду
Политика безопасности Разрешения
lnternet-безопасность Информационный сервер Internet: Internet Information Server (MS)
Защита .NET на основе ролей Принципалы и личности
Роли .NET в Windows Другие классы личностей
Личность в операционной системе и общеязыковой среде выполнения CLR Разрешения коду на доступ
Простой запрос разрешения кодом Как работает запрос на разрешение
Стратегия запроса разрешений Запрет разрешений
Утверждение разрешений Другие методы разрешений
Класс SecurityPermission Неуправляемый код
Разрешения на основе атрибутов Разрешение принципала
Класс PermissionSet Личность кода
Классы разрешений для личности Подтверждение
Политика безопасности Уровни политики безопасности
Кодовые группы Именованные наборы разрешений
Изменение политики безопасности Резюме


Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)



PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C



 
© faq.pp.ru, справочник программиста