File.SetAccessControl(String, FileSecurity) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Aplica entradas acl (lista de controle de acesso) descritas por um objeto FileSecurity ao arquivo especificado.
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)
Parâmetros
- path
- String
Um arquivo do qual adicionar ou remover entradas de ACL (lista de controle de acesso).
- fileSecurity
- FileSecurity
Um objeto FileSecurity que descreve uma entrada ACL a ser aplicada ao arquivo descrito pelo parâmetro path
.
Exceções
Ocorreu um erro de E/S ao abrir o arquivo.
O parâmetro path
é null
.
Não foi possível encontrar o arquivo.
O parâmetro path
especificou um arquivo que é somente leitura.
-ou-
Não há suporte para essa operação na plataforma atual.
-ou-
O parâmetro path
especificou um diretório.
-ou-
O chamador não tem a permissão necessária.
O parâmetro fileSecurity
é null
.
Comentários
O método SetAccessControl aplica entradas acl (lista de controle de acesso) a um arquivo que representa a lista de ACL não herdada.
Cuidado
A ACL especificada para o parâmetro fileSecurity
substitui a ACL existente para o arquivo. Para adicionar permissões para um novo usuário, use o método GetAccessControl para obter a ACL existente, modificá-la e, em seguida, usar SetAccessControl para aplicá-la de volta ao arquivo.
Uma ACL descreve indivíduos e grupos que têm ou não direitos a ações específicas no arquivo especificado. Para obter mais informações, consulte Como adicionar ou remover entradas de lista de controle de acesso.
O método SetAccessControl persiste apenas FileSecurity objetos que foram modificados após a criação do objeto. Se um objeto FileSecurity não tiver sido modificado, ele não será mantido em um arquivo. Portanto, não é possível recuperar um objeto FileSecurity de um arquivo e reaplicar o mesmo objeto para outro arquivo.
Para copiar informações de ACL de um arquivo para outro:
Use o método GetAccessControl para recuperar o objeto FileSecurity do arquivo de origem.
Crie um novo objeto FileSecurity para o arquivo de destino.
Use o método GetSecurityDescriptorBinaryForm ou GetSecurityDescriptorSddlForm do objeto FileSecurity de origem para recuperar as informações de ACL.
Use o método SetSecurityDescriptorBinaryForm ou SetSecurityDescriptorSddlForm para copiar as informações recuperadas na etapa 3 para o objeto de FileSecurity de destino.
Defina o objeto FileSecurity de destino para o arquivo de destino usando o método SetAccessControl.
Em ambientes NTFS, ReadAttributes e ReadExtendedAttributes serão concedidos ao usuário se o usuário tiver direitos de ListDirectory na pasta pai. Para negar ReadAttributes e ReadExtendedAttributes, negue ListDirectory no diretório pai.