File.SetAccessControl(String, FileSecurity) 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 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:
Use el método GetAccessControl para recuperar el objeto FileSecurity del archivo de origen.
Cree un nuevo objeto FileSecurity para el archivo de destino.
Use el método GetSecurityDescriptorBinaryForm o GetSecurityDescriptorSddlForm del objeto FileSecurity 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 FileSecurity de destino.
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.