File.SetAccessControl(String, FileSecurity) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Применяет записи списка управления доступом FileSecurity (ACL), описанные объектом, к указанному файлу.
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 .
Исключения
При открытии файла произошла ошибка ввода-вывода.
Параметр path имеет значение null.
Не удалось найти файл.
Параметр path указал файл, доступный только для чтения.
–или–
Эта операция не поддерживается на текущей платформе.
–или–
Параметр path указал каталог.
–или–
Вызывающий объект не имеет требуемого разрешения.
Параметр fileSecurity имеет значение null.
Комментарии
Метод SetAccessControl применяет записи списка управления доступом (ACL) к файлу, представляющего список ACL, который представляет ненаследованный список ACL.
Предостережение
ACL, указанный fileSecurity для параметра, заменяет существующий ACL для файла. Чтобы добавить разрешения для нового пользователя, используйте GetAccessControl метод, чтобы получить существующий ACL, изменить его, а затем применить SetAccessControl его к файлу.
ACL описывает отдельных лиц и групп, имеющих или не имеющих прав на определенные действия в данном файле. Дополнительные сведения см. в разделе "Практическое руководство. Добавление или удаление записей списка управления доступом".
Метод SetAccessControl сохраняет только FileSecurity объекты, которые были изменены после создания объекта. FileSecurity Если объект не был изменен, он не будет сохранен в файле. Таким образом, невозможно извлечь FileSecurity объект из одного файла и повторно применить один и тот же объект к другому файлу.
Чтобы скопировать сведения ACL из одного файла в другой:
GetAccessControl Используйте метод для извлечения FileSecurity объекта из исходного файла.
Создайте объект FileSecurity для целевого файла.
GetSecurityDescriptorBinaryForm Используйте или GetSecurityDescriptorSddlForm метод исходного FileSecurity объекта для получения сведений ACL.
SetSecurityDescriptorBinaryForm Используйте метод или SetSecurityDescriptorSddlForm скопировать сведения, полученные на шаге 3, в целевой FileSecurity объект.
Задайте целевой FileSecurity объект целевому файлу с помощью SetAccessControl метода.
В средах NTFS и ReadAttributes предоставляется пользователю, ReadExtendedAttributes если у пользователя есть ListDirectory права на родительскую папку. Запретить и ReadAttributesзапретить ReadExtendedAttributesListDirectory в родительском каталоге.