Сводка по технологиям для записей ACL
Обновлен: Ноябрь 2007
В данном разделе обобщены сведения об управляемых API для списков управления доступом на уровне пользователя (DACL), системных списков управления доступом (SACL) и записей управления доступом (ACE). Классы, относящиеся к пространству имен System.Security.AccessControl, позволяют получать программный доступ к спискам DACL, SACL и записям ACE для различных защищенных ресурсов в .NET Framework версии 2.0 и более поздних.
Управляемые API списков управления доступом упрощают работу с этими списками по сравнению с неуправляемой реализацией за счет наличия ряда классов, автоматизирующих многие операции. Например, в случае управляемой реализации невозможно создать пустой список DACL (null), и больше не приходится беспокоиться о том, что из-за неправильного упорядочения записей ACE будет случайно создан небезопасный список DACL.
Ключевые слова
Список управления доступом (ACL), список управления доступом на уровне пользователя (DACL), системный список управления доступом (SACL), запись управления доступом (ACE), ACE аудита
Пространства имен
Связанные технологии
Общие сведения
Список управления доступом на уровне пользователя (DACL), иногда сокращаемый ACL, представляет собой механизм, используемый в Microsoft Windows NT и более поздних операционных системах для защиты ресурсов, таких как файлы и папки. Списки DACL содержат несколько записей управления доступом ACE, с помощью которых участник (обычно это пользовательская учетная запись или группа учетных записей) связывается с правилом, контролирующим использование ресурса. Списки DACL и записи ACE позволяют разрешать или запрещать права на доступ к ресурсам в соответствии с разрешениями, которые могут быть связаны с учетными записями пользователей. Так, можно создать запись ACE и применить ее к списку DACL файла, чтобы запретить чтение файла всем, кроме администратора.
Системный список управления доступом (SACL), иногда называемый ACE аудита, представляет собой механизм контроля над сообщениями аудита, связанными с ресурсом. Так же как и списки DACL, списки SACL содержат записи ACE, определяющие правила аудита для данного ресурса. Записи ACE аудита позволяют регистрировать удавшиеся или неудавшиеся попытки доступа к ресурсу, однако они отличаются от записей ACE доступа, поскольку они не определяют, каким именно учетным записям разрешено использовать тот или иной ресурс. Так, можно создать запись ACE и применить ее к списку SACL файла для журнализации всех успешных попыток открытия файла.
Краткий обзор классов ACL
В следующей таблице приведен список основных классов, которые могут использоваться для удобного создания и изменения списков ACL в ряде областей. Это отнюдь не исчерпывающий список классов пространства имен System.Security.AccessControl; он включает лишь самые основные классы, используемые при работе со списками ACL.
Сфера применения |
Классы |
---|---|
Ключи шифрования |
|
Каталоги |
|
Дескрипторы ожидания событий |
|
Файлы |
|
Объекты Mutex |
|
Разделы реестра |
|
Семафоры |
Для запроса имеющейся информации ACL, относящейся к определенному ресурсу, или для применения к ресурсу измененной информации ACL следует использовать один из нескольких методов, обеспечивающих доступ к спискам ACL существующего ресурса. Классы, приведенные в предыдущей таблице, обеспечивают методы для создания и изменения списков ACL, однако они не предоставляют средств запроса или применения списков ACL.
С каждым ресурсом связаны методы, которые применяют списки ACL при создании ресурса (обычно это перегрузка конструктора), позволяют получать списки ACL для существующего ресурса и применять списки ACL к существующему ресурсу.
В следующей таблице приведен список методов, используемых для получения и задания списков ACL в различных областях применения. Эти методы размещены в нескольких пространствах имен вне пространства имен System.Security.AccessControl и входят в состав более высокоуровневых классов, представляющих определенный ресурс. Например, чтобы запросить список ACL для определенного каталога, используется метод Directory.GetAccessControl, с помощью которого можно получить объект DirectorySecurity, инкапсулирующий списки DACL и SACL для данного каталога. Обратите внимание, что некоторые ресурсы, такие как файлы и каталоги, имеют несколько эквивалентных методов в разных классах, которые обеспечивают доступ к спискам ACL.
Сфера применения |
Методы получения и задания списков ACL |
---|---|
Ключи шифрования |
|
Каталоги |
DirectoryInfo.GetAccessControl |
Дескрипторы ожидания событий |
EventWaitHandle.GetAccessControl |
Файлы |
|
Объекты Mutex |
|
Разделы реестра |
|
Семафоры |