Directory.SetAccessControl(String, DirectorySecurity) Método

Definição

Aplica entradas da lista de controlo de acesso (ACL) 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 para adicionar ou remover entradas da lista de controlo de acesso (ACL).

directorySecurity
DirectorySecurity

Um DirectorySecurity objeto que descreve uma entrada ACL para aplicar ao diretório descrito pelo path parâmetro.

Exceções

O directorySecurity parâmetro é null.

O diretório não foi encontrado.

Era path 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.

Observações

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

Atenção

A ACL especificada para o directorySecurity parâmetro substitui a ACL existente do diretório. Para adicionar permissões a um novo utilizador, 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 sobre ações específicas no ficheiro ou diretório dado. Para obter mais informações, consulte Como adicionar ou remover entradas da lista de controle de acesso.

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

Para copiar informação ACL de um ficheiro para outro:

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

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

  3. Use o GetSecurityDescriptorBinaryForm método ou GetSecurityDescriptorSddlForm do objeto fonte DirectorySecurity para recuperar a informação ACL.

  4. Use o SetSecurityDescriptorBinaryForm método ou SetSecurityDescriptorSddlForm para copiar a informação recuperada no passo 3 para o objeto de destino DirectorySecurity .

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

Em ambientes NTFS, ReadAttributes e ReadExtendedAttributes são concedidos ao utilizador se este tiver ListDirectory direitos sobre a pasta pai. Para negar ReadAttributes e ReadExtendedAttributes, negar ListDirectory no diretório principal.

Aplica-se a

Ver também