Directory.SetAccessControl(String, DirectorySecurity) Método

Definição

Aplica entradas acl (lista de controle de acesso) descritas por um DirectorySecurity objeto 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 DirectorySecurity objeto que descreve uma entrada acl a ser aplicada ao diretório descrito pelo path parâmetro.

Exceções

O directorySecurity parâmetro é 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 por path.

-ou-

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

Comentários

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

Caution

A ACL especificada para o directorySecurity parâmetro substitui a ACL existente para o diretório. Para adicionar permissões para um novo usuário, use o GetAccessControl método 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 da lista de controle de acesso.

O SetAccessControl método persiste apenas DirectorySecurity os objetos que foram modificados após a criação do objeto. Se um DirectorySecurity objeto não tiver sido modificado, ele não será mantido em um arquivo. Portanto, não é possível recuperar um objeto de um DirectorySecurity arquivo e reaplicar o mesmo objeto para outro arquivo.

Para copiar informações de ACL de um arquivo para outro:

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

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

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

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

  5. Defina o objeto de destino DirectorySecurity para o arquivo de destino usando o SetAccessControl método.

Em ambientes NTFS, ReadAttributes e ReadExtendedAttributes são concedidos ao usuário se o usuário tiver ListDirectory direitos na pasta pai. Para negar ReadAttributes e ReadExtendedAttributesnegar ListDirectory no diretório pai.

Aplica-se a

Confira também