Directory.SetAccessControl(String, DirectorySecurity) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Применяет записи списка управления доступом (ACL), описанные объектом DirectorySecurity к указанному каталогу.
public:
static void SetAccessControl(System::String ^ path, System::Security::AccessControl::DirectorySecurity ^ directorySecurity);
public static void SetAccessControl (string path, System.Security.AccessControl.DirectorySecurity directorySecurity);
static member SetAccessControl : string * System.Security.AccessControl.DirectorySecurity -> unit
Public Shared Sub SetAccessControl (path As String, directorySecurity As DirectorySecurity)
Параметры
- path
- String
Каталог для добавления или удаления записей списка управления доступом (ACL).
- directorySecurity
- DirectorySecurity
Объект DirectorySecurity, описывающий запись ACL для применения к каталогу, описанному параметром path
.
Исключения
Параметр directorySecurity
null
.
Не удалось найти каталог.
Недопустимый path
.
Текущий процесс не имеет доступа к каталогу, указанному path
.
-или-
Текущий процесс не имеет достаточных привилегий для задания записи ACL.
Комментарии
Метод SetAccessControl применяет записи списка управления доступом (ACL) к каталогу, представляющего ненаследованный список ACL.
Осторожность
ACL, указанный для параметра directorySecurity
, заменяет существующий ACL для каталога. Чтобы добавить разрешения для нового пользователя, используйте метод GetAccessControl, чтобы получить существующий ACL и изменить его.
ACL описывает отдельных лиц и групп, имеющих или не имеющих прав на определенные действия в указанном файле или каталоге. Дополнительные сведения см. в разделе Практическое руководство. Добавление или удаление записей списка управления доступом.
Метод SetAccessControl сохраняет только объекты DirectorySecurity, которые были изменены после создания объекта. Если объект DirectorySecurity не был изменен, он не будет сохранен в файле. Поэтому невозможно получить объект DirectorySecurity из одного файла и повторно применить тот же объект к другому файлу.
Чтобы скопировать сведения ACL из одного файла в другой:
Используйте метод GetAccessControl для получения объекта DirectorySecurity из исходного файла.
Создайте новый объект DirectorySecurity для целевого файла.
Используйте метод GetSecurityDescriptorBinaryForm или GetSecurityDescriptorSddlForm исходного объекта DirectorySecurity для получения сведений ACL.
Используйте метод SetSecurityDescriptorBinaryForm или SetSecurityDescriptorSddlForm, чтобы скопировать сведения, полученные на шаге 3, в целевой объект DirectorySecurity.
Задайте целевой объект DirectorySecurity целевому файлу с помощью метода SetAccessControl.
В средах NTFS ReadAttributes и ReadExtendedAttributes предоставляются пользователю, если у пользователя есть ListDirectory права на родительскую папку. Чтобы запретить ReadAttributes и ReadExtendedAttributes, запретить ListDirectory в родительском каталоге.