Directory.SetAccessControl(String, DirectorySecurity) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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:
Use el método GetAccessControl para recuperar el objeto DirectorySecurity del archivo de origen.
Cree un nuevo objeto DirectorySecurity para el archivo de destino.
Use el método GetSecurityDescriptorBinaryForm o GetSecurityDescriptorSddlForm del objeto DirectorySecurity de origen para recuperar la información de la ACL.
Use el método SetSecurityDescriptorBinaryForm o SetSecurityDescriptorSddlForm para copiar la información recuperada en el paso 3 al objeto de DirectorySecurity de destino.
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.