Поделиться через


File.SetAccessControl(String, FileSecurity) Метод

Определение

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

public:
 static void SetAccessControl(System::String ^ path, System::Security::AccessControl::FileSecurity ^ fileSecurity);
public static void SetAccessControl (string path, System.Security.AccessControl.FileSecurity fileSecurity);
static member SetAccessControl : string * System.Security.AccessControl.FileSecurity -> unit
Public Shared Sub SetAccessControl (path As String, fileSecurity As FileSecurity)

Параметры

path
String

Файл для добавления или удаления записей списка управления доступом (ACL).

fileSecurity
FileSecurity

Объект FileSecurity, описывающий запись ACL для применения к файлу, описанному параметром path.

Исключения

При открытии файла произошла ошибка ввода-вывода.

Параметр pathnull.

Не удалось найти файл.

Параметр path указал файл, доступный только для чтения.

-или-

Эта операция не поддерживается на текущей платформе.

-или-

Параметр path указал каталог.

-или-

Вызывающий объект не имеет требуемого разрешения.

Параметр fileSecuritynull.

Комментарии

Метод SetAccessControl применяет записи списка управления доступом (ACL) к файлу, представляющего ненаследованный список ACL.

Осторожность

ACL, указанный для параметра fileSecurity, заменяет существующий ACL для файла. Чтобы добавить разрешения для нового пользователя, используйте метод GetAccessControl, чтобы получить существующий ACL, изменить его, а затем использовать SetAccessControl, чтобы применить его к файлу.

ACL описывает отдельных лиц и групп, имеющих или не имеющих прав на определенные действия в данном файле. Дополнительные сведения см. в разделе Практическое руководство. Добавление или удаление записей списка управления доступом.

Метод SetAccessControl сохраняет только объекты FileSecurity, которые были изменены после создания объекта. Если объект FileSecurity не был изменен, он не будет сохранен в файле. Поэтому невозможно получить объект FileSecurity из одного файла и повторно применить тот же объект к другому файлу.

Чтобы скопировать сведения ACL из одного файла в другой:

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

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

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

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

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

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

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

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