Разрешения безопасности
Обновлен: Ноябрь 2007
Среда CLR позволяет коду выполнять только те операции, на выполнение которых у кода есть разрешение. Среда выполнения использует объекты, называемые разрешениями, для реализации механизмов, контролирующих соблюдение ограничений для управляемого кода. Разрешения используются следующим образом.
Код может запрашивать разрешения, которые ему необходимы или которые он мог бы использовать. Система безопасности .NET Framework определяет, принимаются ли подобные запросы на обработку. Запросы обрабатываются только в том случае, если свидетельство кода допускает предоставление таких разрешений. Коду не могут быть предоставлены более широкие права, чем позволяют текущие параметры безопасности в соответствии с запросом. Однако коду могут быть предоставлены менее широкие права, в зависимости от запроса.
Среда выполнения может предоставлять коду разрешения, исходя из характеристик удостоверения кода, запрошенных разрешений и степени доверия к коду (согласно политике безопасности, установленной администратором). Дополнительные сведения о том, как среда выполнения определяет, какие разрешения следует предоставить, см. в разделах Политика безопасности и Предоставление разрешений.
Код может требовать наличия определенных разрешений у вызывающего его кода. Если для доступа к коду требуется иметь некоторое разрешение, то любой другой код, использующий данный код, может быть выполнен только при наличии этого разрешения.
Существуют три вида разрешений, каждый из которых имеет свое назначение.
Разрешения доступа кода, которые контролируют доступ к защищенному ресурсу или возможность выполнения защищенной операции.
Разрешения удостоверений, которые указывают, что у кода имеются идентификационные данные, поддерживающие конкретный тип удостоверения.
Разрешения безопасности на основе ролей, которые позволяют установить, имеет ли пользователь (или действующее от его имени лицо) конкретное удостоверение или является ли он участником указанной роли. PrincipalPermission является единственным разрешением безопасности на основе ролей.
В среде выполнения предусмотрены встроенные классы разрешений в нескольких пространствах имен, а также поддерживается проектирование и реализация нестандартных классов разрешений.
См. также
Основные понятия
Разрешения безопасности на основе ролей