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(System::String ^ path, System::Security::AccessControl::DirectorySecurity ^ directorySecurity);
public static void SetAccessControl (string path, System.Security.AccessControl.DirectorySecurity directorySecurity);
static member SetAccessControl : string * System.Security.AccessControl.DirectorySecurity -> unit
Public Shared Sub SetAccessControl (path As String, directorySecurity As 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.

Cuidado

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

Confira também