* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна!
Разрешения
8 февраля 2009
Разрешения (permissions) — основные объекты системы безопасности. Это про- граммная сущность, представляющая пользователя, удостоверение безопасности или программный ресурс. Такие объекты применяются для исполнения самых раз- ных действий, связанных с обеспечением безопасности, — проверки прав доступа и реализации политики безопасности.
Интерфейс (Permission Во всех объектах разрешений реализован интерфейс {Permission. Вам, как разработ- чику, редко придется реализовывать этот интерфейс в своих объектах, не исключе- но, что он вам вовсе не понадобится. Тем не менее, изучив объявленные в IPermission методы (таблица 9-2), вы лучше поймете, как работают объекты, в которых ре- ализован этот интерфейс. Таблица 9-2. Методы интерфейса IPermission Имя Описание Сору Создает и возвращает полную копию объекта разрешения Demand Просматривает стек вызовов и генерирует исключение Security Exception, обнаружив, что какая-то функция была вызвана без наличия у вызывающей стороны соответствующих разрешений Intersect Создает и возвращает разрешение, которое предоставляет только права, общие для разрешений-аргументов IsSubsetOf Определяет, входит ли текущее разрешение в подмножество заданного разрешения Union Создает разрешение, которое является результатом объединения наборов прав, предоставляемых текущим и заданным разрешениями В любых объектах разрешений в .NET Framework должен быть реализован ин- терфейс IPermission, предоставляющий общую функциональность всем объектам системы безопасности. Вызывая метод Demand, объекты разрешений инициируют проверку прав доступа. Этот метод запрещает вызов защищенного кода без соот- ветствующих разрешений. Если требуемые разрешения отсутствуют, метод Demand генерирует исключение SecurityException. Метод Сору создает полную копию объек- та разрешения, а метод IsSubsetOf проверяет, входит ли текущее разрешение в под- множество заданного. Методы Union и Intersect применяют для создания нового объекта разрешения на основе пары однотипных разрешений. Объект разрешения, возвращаемый методом Union, реализует все права, которые предоставляют разре- шения-аргументы, а разрешение-результат метода Intersect — только права, общие для обоих разрешений, переданных методу Intersect. Об использовании этих мето- дов для манипулирования объектами разрешений .NET Framework рассказано в следующих разделах.