Directory.SetAccessControl(String, DirectorySecurity) Метод

Определение

Применяет записи списка управления доступом DirectorySecurity (ACL), описанные объектом, к указанному каталогу.

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 из одного файла в другой:

  1. GetAccessControl Используйте метод для извлечения DirectorySecurity объекта из исходного файла.

  2. Создайте объект DirectorySecurity для целевого файла.

  3. GetSecurityDescriptorBinaryForm Используйте или GetSecurityDescriptorSddlForm метод исходного DirectorySecurity объекта для получения сведений ACL.

  4. SetSecurityDescriptorBinaryForm Используйте метод или SetSecurityDescriptorSddlForm скопировать сведения, полученные на шаге 3, в целевой DirectorySecurity объект.

  5. Задайте целевой DirectorySecurity объект целевому файлу с помощью SetAccessControl метода.

В средах NTFS и ReadAttributes предоставляется пользователю, ReadExtendedAttributes если у пользователя есть ListDirectory права на родительскую папку. Запретить и ReadAttributesзапретить ReadExtendedAttributesListDirectory в родительском каталоге.

Применяется к

См. также раздел