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
.
Исключения
При открытии файла произошла ошибка ввода-вывода.
Параметр path
null
.
Не удалось найти файл.
Параметр path
указал файл, доступный только для чтения.
-или-
Эта операция не поддерживается на текущей платформе.
-или-
Параметр path
указал каталог.
-или-
Вызывающий объект не имеет требуемого разрешения.
Параметр fileSecurity
null
.
Комментарии
Метод SetAccessControl применяет записи списка управления доступом (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 и ReadExtendedAttributes, запретить ListDirectory в родительском каталоге.