File.SetAccessControl(String, FileSecurity) Método

Definição

Aplica entradas da lista de controlo de acesso (ACL) descritas por um FileSecurity objeto ao ficheiro especificado.

public:
 static void SetAccessControl(System::String ^ path, System::Security::AccessControl::FileSecurity ^ fileSecurity);
public static void SetAccessControl(string path, System.Security.AccessControl.FileSecurity fileSecurity);
static member SetAccessControl : string * System.Security.AccessControl.FileSecurity -> unit
Public Shared Sub SetAccessControl (path As String, fileSecurity As FileSecurity)

Parâmetros

path
String

Um ficheiro para adicionar ou remover entradas da lista de controlo de acesso (ACL).

fileSecurity
FileSecurity

Um FileSecurity objeto que descreve uma entrada ACL para aplicar ao ficheiro descrito pelo path parâmetro.

Exceções

Ocorreu um erro de E/S durante a abertura do ficheiro.

O path parâmetro é null.

O ficheiro não foi encontrado.

O path parâmetro especificava um ficheiro que era apenas leitura.

-ou-

Esta operação não é suportada na plataforma atual.

-ou-

O path parâmetro especificava um diretório.

-ou-

O interlocutor não tem a permissão necessária.

O fileSecurity parâmetro é null.

Observações

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

Atenção

A ACL especificada para o fileSecurity parâmetro substitui a ACL existente do ficheiro. Para adicionar permissões a um novo utilizador, use o GetAccessControl método para obter a ACL existente, modifique-a e depois use SetAccessControl para a aplicar novamente ao ficheiro.

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

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

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

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

  5. Defina o objeto de destino FileSecurity 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