Directory.SetAccessControl(String, DirectorySecurity) Método

Definición

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

Directorio del que se van a agregar o quitar entradas de la lista de control de acceso (ACL).

directorySecurity
DirectorySecurity

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

Excepciones

El parámetro directorySecurity es null.

No se encontró el directorio.

El path no era válido.

El proceso actual no tiene acceso al directorio especificado por path.

-o-

El proceso actual no tiene privilegios suficientes para establecer la entrada de ACL.

Comentarios

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

Cautela

La ACL especificada para el parámetro directorySecurity reemplaza la ACL existente para el directorio. Para agregar permisos para un nuevo usuario, use el método GetAccessControl para obtener la ACL existente y modificarla.

Una ACL describe individuos y grupos que tienen derechos, o no, a acciones específicas en el archivo o directorio especificados. 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 DirectorySecurity objetos que se han modificado después de la creación del objeto. Si no se ha modificado un objeto DirectorySecurity, no se conservará en un archivo. Por lo tanto, no es posible recuperar un objeto DirectorySecurity 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 DirectorySecurity del archivo de origen.

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

  3. Use el método GetSecurityDescriptorBinaryForm o GetSecurityDescriptorSddlForm del objeto DirectorySecurity 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 DirectorySecurity de destino.

  5. Establezca el objeto DirectorySecurity 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