Compartir a través de


File.SetAccessControl(String, FileSecurity) Método

Definición

Aplica entradas de lista de control de acceso (ACL) descritas por un objeto FileSecurity al archivo 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

Un archivo para agregar o quitar entradas de la lista de control de acceso (ACL).

fileSecurity
FileSecurity

Objeto FileSecurity que describe una entrada de ACL que se va a aplicar al archivo descrito por el parámetro path.

Excepciones

Error de E/S al abrir el archivo.

El parámetro path es null.

No se encontró el archivo.

El parámetro path especificó un archivo de solo lectura.

-o-

Esta operación no se admite en la plataforma actual.

-o-

El parámetro path especificó un directorio.

-o-

El autor de la llamada no tiene el permiso necesario.

El parámetro fileSecurity es null.

Comentarios

El método SetAccessControl aplica entradas de lista de control de acceso (ACL) a un archivo que representa la lista de ACL noherida.

Cautela

La ACL especificada para el parámetro fileSecurity reemplaza la ACL existente para el archivo. Para agregar permisos para un nuevo usuario, use el método GetAccessControl para obtener la ACL existente, modificarla y, a continuación, usar SetAccessControl para volver a aplicarla al archivo.

Una ACL describe individuos y grupos que tienen derechos, o no, a acciones específicas en el archivo especificado. Para obtener más información, vea Cómo: Agregar o quitar entradas de lista de control de acceso.

El método SetAccessControl solo conserva FileSecurity objetos que se han modificado después de la creación del objeto. Si no se ha modificado un objeto FileSecurity, no se conservará en un archivo. Por lo tanto, no es posible recuperar un objeto FileSecurity de un archivo y volver a aplicar el mismo objeto a otro archivo.

Para copiar información de ACL de un archivo a otro:

  1. Use el método GetAccessControl para recuperar el objeto FileSecurity del archivo de origen.

  2. Cree un nuevo objeto FileSecurity para el archivo de destino.

  3. Use el método GetSecurityDescriptorBinaryForm o GetSecurityDescriptorSddlForm del objeto FileSecurity de origen para recuperar la información de la ACL.

  4. Use el método SetSecurityDescriptorBinaryForm o SetSecurityDescriptorSddlForm para copiar la información recuperada en el paso 3 al objeto de FileSecurity de destino.

  5. Establezca el objeto FileSecurity de destino en el archivo de destino mediante el método SetAccessControl.

En entornos NTFS, ReadAttributes y ReadExtendedAttributes se conceden al usuario si el usuario tiene derechos ListDirectory en la carpeta primaria. Para denegar ReadAttributes y ReadExtendedAttributes, deniegue ListDirectory en el directorio primario.

Se aplica a

Consulte también