File.SetAccessControl(String, FileSecurity) Método

Definição

Aplica entradas acl (lista de controle de acesso) descritas por um FileSecurity objeto ao arquivo 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 arquivo do qual adicionar ou remover entradas de ACL (lista de controle de acesso).

fileSecurity
FileSecurity

Um FileSecurity objeto que descreve uma entrada ACL a ser aplicada ao arquivo descrito pelo path parâmetro.

Exceções

Ocorreu um erro de E/S ao abrir o arquivo.

O path parâmetro é null.

Não foi possível encontrar o arquivo.

O path parâmetro especificou um arquivo que é somente leitura.

-ou-

Não há suporte para essa operação na plataforma atual.

-ou-

O path parâmetro especificou um diretório.

-ou-

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

O fileSecurity parâmetro é null.

Comentários

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

Caution

A ACL especificada para o fileSecurity parâmetro substitui a ACL existente para o arquivo. Para adicionar permissões para um novo usuário, use o GetAccessControl método para obter a ACL existente, modificá-la e, em seguida, usá-la SetAccessControl para aplicá-la de volta ao arquivo.

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

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

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

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

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