Compartilhar via


File.SetAccessControl(String, FileSecurity) Método

Definição

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:

  1. Use o método GetAccessControl para recuperar o objeto FileSecurity do arquivo de origem.

  2. Crie um novo objeto FileSecurity para o arquivo de destino.

  3. Use o método GetSecurityDescriptorBinaryForm ou GetSecurityDescriptorSddlForm do objeto FileSecurity de origem para recuperar as informações de ACL.

  4. Use o método SetSecurityDescriptorBinaryForm ou SetSecurityDescriptorSddlForm para copiar as informações recuperadas na etapa 3 para o objeto de FileSecurity de destino.

  5. 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.

Aplica-se a

Confira também