Directory.SetAccessControl(String, DirectorySecurity) Método

Definição

Aplica entradas de ACL (lista de controle de acesso) descritas por um objeto DirectorySecurity ao diretório especificado.

public static void SetAccessControl (string path, System.Security.AccessControl.DirectorySecurity directorySecurity);

Parâmetros

path
String

Um diretório do qual adicionar ou remover entradas de ACL (lista de controle de acesso).

directorySecurity
DirectorySecurity

Um objeto DirectorySecurity que descreve uma entrada acl a ser aplicada ao diretório descrito pelo parâmetro path.

Exceções

O parâmetro directorySecurity é null.

Não foi possível encontrar o diretório.

O path era inválido.

O processo atual não tem acesso ao diretório especificado pelo path.

-ou-

O processo atual não tem privilégio suficiente para definir a entrada acl.

Comentários

O método SetAccessControl aplica entradas acl (lista de controle de acesso) a um diretório que representa a lista de ACL não herdada.

Atenção

A ACL especificada para o parâmetro directorySecurity substitui a ACL existente para o diretório. Para adicionar permissões para um novo usuário, use o método GetAccessControl para obter a ACL existente e modificá-la.

Uma ACL descreve indivíduos e grupos que têm, ou não têm, direitos a ações específicas no arquivo ou diretório especificado. Para obter mais informações, consulte Como adicionar ou remover entradas de lista de controle de acesso.

O método SetAccessControl persiste apenas DirectorySecurity objetos que foram modificados após a criação do objeto. Se um objeto DirectorySecurity não tiver sido modificado, ele não será mantido em um arquivo. Portanto, não é possível recuperar um objeto DirectorySecurity 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 DirectorySecurity do arquivo de origem.

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

  3. Use o método GetSecurityDescriptorBinaryForm ou GetSecurityDescriptorSddlForm do objeto DirectorySecurity 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 DirectorySecurity de destino.

  5. Defina o objeto DirectorySecurity 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

Produto Versões
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

Confira também