Directory.SetAccessControl(String, DirectorySecurity) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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:
Use o método GetAccessControl para recuperar o objeto DirectorySecurity do arquivo de origem.
Crie um novo objeto DirectorySecurity para o arquivo de destino.
Use o método GetSecurityDescriptorBinaryForm ou GetSecurityDescriptorSddlForm do objeto DirectorySecurity de origem para recuperar as informações de ACL.
Use o método SetSecurityDescriptorBinaryForm ou SetSecurityDescriptorSddlForm para copiar as informações recuperadas na etapa 3 para o objeto de DirectorySecurity de destino.
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.