File.GetAccessControl File.GetAccessControl File.GetAccessControl File.GetAccessControl Method

Definición

Obtiene un objeto FileSecurity que encapsula las entradas de la lista de control de acceso (ACL) para un archivo especificado.Gets a FileSecurity object that encapsulates the access control list (ACL) entries for a specified file.

Sobrecargas

GetAccessControl(String) GetAccessControl(String) GetAccessControl(String) GetAccessControl(String)

Obtiene un objeto FileSecurity que encapsula las entradas de la lista de control de acceso (ACL) para un archivo especificado.Gets a FileSecurity object that encapsulates the access control list (ACL) entries for a specified file.

GetAccessControl(String, AccessControlSections) GetAccessControl(String, AccessControlSections) GetAccessControl(String, AccessControlSections) GetAccessControl(String, AccessControlSections)

Obtiene un objeto FileSecurity que encapsula el tipo especificado de las entradas de la lista de control de acceso (ACL) para un archivo determinado.Gets a FileSecurity object that encapsulates the specified type of access control list (ACL) entries for a particular file.

Comentarios

Utilice los GetAccessControl métodos para recuperar las entradas de la lista de control de acceso (ACL) para un archivo especificado.Use the GetAccessControl methods to retrieve the access control list (ACL) entries for a specified file.

GetAccessControl(String) GetAccessControl(String) GetAccessControl(String) GetAccessControl(String)

Obtiene un objeto FileSecurity que encapsula las entradas de la lista de control de acceso (ACL) para un archivo especificado.Gets a FileSecurity object that encapsulates the access control list (ACL) entries for a specified file.

public:
 static System::Security::AccessControl::FileSecurity ^ GetAccessControl(System::String ^ path);
public static System.Security.AccessControl.FileSecurity GetAccessControl (string path);
static member GetAccessControl : string -> System.Security.AccessControl.FileSecurity
Public Shared Function GetAccessControl (path As String) As FileSecurity

Parámetros

path
String String String String

Ruta de acceso a un archivo que contiene un objeto FileSecurity que describe la información de la lista de control de acceso (ACL) del archivo.The path to a file containing a FileSecurity object that describes the file's access control list (ACL) information.

Devoluciones

Objeto FileSecurity que encapsula las reglas de control de acceso correspondientes al archivo descrito por el parámetro path.A FileSecurity object that encapsulates the access control rules for the file described by the path parameter.

Excepciones

Se produjo un error de E/S al abrir el archivo.An I/O error occurred while opening the file.

El parámetro path es null.The path parameter is null.

No se encuentra el archivo.The file could not be found.

El parámetro path especificó un archivo que es de solo lectura.The path parameter specified a file that is read-only.

O bien-or- Esta operación no es compatible con la plataforma actual.This operation is not supported on the current platform.

o bien-or- El parámetro path especificó un directorio.The path parameter specified a directory.

o bien-or- El llamador no dispone del permiso requerido.The caller does not have the required permission.

Ejemplos

En el ejemplo de código siguiente GetAccessControl se usan SetAccessControl los métodos y para agregar y quitar una entrada de la lista de control de acceso (ACL) de un archivo.The following code example uses the GetAccessControl and the SetAccessControl methods to add and then remove an access control list (ACL) entry from a file. Para ejecutar este ejemplo, debe proporcionar una cuenta de usuario o grupo válida.You must supply a valid user or group account to run this example.

using namespace System;
using namespace System::IO;
using namespace System::Security::AccessControl;

// Adds an ACL entry on the specified file for the specified account.

void AddFileSecurity(String^ fileName, String^ account, 
                        FileSystemRights rights, AccessControlType controlType)
{
    // Get a FileSecurity object that represents the 
    // current security settings.
    FileSecurity^ fSecurity = File::GetAccessControl(fileName);

    // Add the FileSystemAccessRule to the security settings. 
    fSecurity->AddAccessRule(gcnew FileSystemAccessRule
                                   (account,rights, controlType));

    // Set the new access settings.
    File::SetAccessControl(fileName, fSecurity);
}

// Removes an ACL entry on the specified file for the specified account.

void RemoveFileSecurity(String^ fileName, String^ account, 
                        FileSystemRights rights, AccessControlType controlType)
{

    // Get a FileSecurity object that represents the 
    // current security settings.
    FileSecurity^ fSecurity = File::GetAccessControl(fileName);

    // Remove the FileSystemAccessRule from the security settings. 
    fSecurity->RemoveAccessRule(gcnew FileSystemAccessRule
                                      (account,rights, controlType));

    // Set the new access settings.
    File::SetAccessControl(fileName, fSecurity);
}

int main()
{
    try
    {
        String^ fileName = "test.xml";

        Console::WriteLine("Adding access control entry for " + fileName);

        // Add the access control entry to the file.
        AddFileSecurity(fileName, "MYDOMAIN\\MyAccount", 
            FileSystemRights::ReadData, AccessControlType::Allow);

        Console::WriteLine("Removing access control entry from " + fileName);

        // Remove the access control entry from the file.
        RemoveFileSecurity(fileName, "MYDOMAIN\\MyAccount", 
            FileSystemRights::ReadData, AccessControlType::Allow);

        Console::WriteLine("Done.");
    }
    catch (Exception^ ex)
    {
        Console::WriteLine(ex->Message);
    }
}

using System;
using System.IO;
using System.Security.AccessControl;

namespace FileSystemExample
{
    class FileExample
    {
        public static void Main()
        {
            try
            {
                string fileName = "test.xml";

                Console.WriteLine("Adding access control entry for "
                    + fileName);

                // Add the access control entry to the file.
                AddFileSecurity(fileName, @"DomainName\AccountName",
                    FileSystemRights.ReadData, AccessControlType.Allow);

                Console.WriteLine("Removing access control entry from "
                    + fileName);

                // Remove the access control entry from the file.
                RemoveFileSecurity(fileName, @"DomainName\AccountName",
                    FileSystemRights.ReadData, AccessControlType.Allow);

                Console.WriteLine("Done.");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }

        // Adds an ACL entry on the specified file for the specified account.
        public static void AddFileSecurity(string fileName, string account,
            FileSystemRights rights, AccessControlType controlType)
        {


            // Get a FileSecurity object that represents the
            // current security settings.
            FileSecurity fSecurity = File.GetAccessControl(fileName);

            // Add the FileSystemAccessRule to the security settings.
            fSecurity.AddAccessRule(new FileSystemAccessRule(account,
                rights, controlType));

            // Set the new access settings.
            File.SetAccessControl(fileName, fSecurity);

        }

        // Removes an ACL entry on the specified file for the specified account.
        public static void RemoveFileSecurity(string fileName, string account,
            FileSystemRights rights, AccessControlType controlType)
        {

            // Get a FileSecurity object that represents the
            // current security settings.
            FileSecurity fSecurity = File.GetAccessControl(fileName);

            // Remove the FileSystemAccessRule from the security settings.
            fSecurity.RemoveAccessRule(new FileSystemAccessRule(account,
                rights, controlType));

            // Set the new access settings.
            File.SetAccessControl(fileName, fSecurity);

        }
    }
}
Imports System.IO
Imports System.Security.AccessControl



Module FileExample

    Sub Main()
        Try
            Dim fileName As String = "test.xml"

            Console.WriteLine("Adding access control entry for " & fileName)

            ' Add the access control entry to the file.
            AddFileSecurity(fileName, "DomainName\AccountName", _
                FileSystemRights.ReadData, AccessControlType.Allow)

            Console.WriteLine("Removing access control entry from " & fileName)

            ' Remove the access control entry from the file.
            RemoveFileSecurity(fileName, "DomainName\AccountName", _
                FileSystemRights.ReadData, AccessControlType.Allow)

            Console.WriteLine("Done.")
        Catch e As Exception
            Console.WriteLine(e)
        End Try

    End Sub


    ' Adds an ACL entry on the specified file for the specified account.
    Sub AddFileSecurity(ByVal fileName As String, ByVal account As String, _
        ByVal rights As FileSystemRights, ByVal controlType As AccessControlType)
  
        ' Get a FileSecurity object that represents the 
        ' current security settings.
        Dim fSecurity As FileSecurity = File.GetAccessControl(fileName)

        ' Add the FileSystemAccessRule to the security settings. 
        Dim accessRule As FileSystemAccessRule = _
            New FileSystemAccessRule(account, rights, controlType)

        fSecurity.AddAccessRule(accessRule)

        ' Set the new access settings.
        File.SetAccessControl(fileName, fSecurity)

    End Sub


    ' Removes an ACL entry on the specified file for the specified account.
    Sub RemoveFileSecurity(ByVal fileName As String, ByVal account As String, _
        ByVal rights As FileSystemRights, ByVal controlType As AccessControlType)

        ' Get a FileSecurity object that represents the 
        ' current security settings.
        Dim fSecurity As FileSecurity = File.GetAccessControl(fileName)

        ' Remove the FileSystemAccessRule from the security settings. 
        fSecurity.RemoveAccessRule(New FileSystemAccessRule(account, _
            rights, controlType))

        ' Set the new access settings.
        File.SetAccessControl(fileName, fSecurity)

    End Sub
End Module

Comentarios

Utilice el GetAccessControl método para recuperar las entradas de la lista de control de acceso (ACL) de un archivo.Use the GetAccessControl method to retrieve the access control list (ACL) entries for a file.

Una ACL describe los usuarios o grupos que tienen o no tienen derechos sobre acciones específicas en el archivo especificado.An ACL describes individuals and/or groups who have, or do not have, rights to specific actions on the given file. Para más información, consulte How to: Add or Remove Access Control List Entries (Cómo: Agregar o quitar entradas de la lista de control de acceso).For more information, see How to: Add or Remove Access Control List Entries.

En entornos NTFS, ReadAttributes y ReadExtendedAttributes se conceden al usuario si el usuario tiene ListDirectory derechos en la carpeta principal.In NTFS environments, ReadAttributes and ReadExtendedAttributes are granted to the user if the user has ListDirectory rights on the parent folder. Para ReadAttributes denegar ReadExtendedAttributesy, ListDirectory denegar en el directorio principal.To deny ReadAttributes and ReadExtendedAttributes, deny ListDirectory on the parent directory.

Seguridad

FileIOPermission
para obtener permiso para leer la lista de control de acceso.for permission to read the access control list. Acción de seguridad: Bajo.Security action: Demand. Enumeraciones asociadas: NoAccess,ViewAssociated enumerations: NoAccess, View

GetAccessControl(String, AccessControlSections) GetAccessControl(String, AccessControlSections) GetAccessControl(String, AccessControlSections) GetAccessControl(String, AccessControlSections)

Obtiene un objeto FileSecurity que encapsula el tipo especificado de las entradas de la lista de control de acceso (ACL) para un archivo determinado.Gets a FileSecurity object that encapsulates the specified type of access control list (ACL) entries for a particular file.

public:
 static System::Security::AccessControl::FileSecurity ^ GetAccessControl(System::String ^ path, System::Security::AccessControl::AccessControlSections includeSections);
public static System.Security.AccessControl.FileSecurity GetAccessControl (string path, System.Security.AccessControl.AccessControlSections includeSections);
static member GetAccessControl : string * System.Security.AccessControl.AccessControlSections -> System.Security.AccessControl.FileSecurity
Public Shared Function GetAccessControl (path As String, includeSections As AccessControlSections) As FileSecurity

Parámetros

path
String String String String

Ruta de acceso a un archivo que contiene un objeto FileSecurity que describe la información de la lista de control de acceso (ACL) del archivo.The path to a file containing a FileSecurity object that describes the file's access control list (ACL) information.

includeSections
AccessControlSections AccessControlSections AccessControlSections AccessControlSections

Uno de los valores AccessControlSections que especifica el tipo de información de la lista de control de acceso (ACL) que se recibe.One of the AccessControlSections values that specifies the type of access control list (ACL) information to receive.

Devoluciones

Objeto FileSecurity que encapsula las reglas de control de acceso correspondientes al archivo descrito por el parámetro path.A FileSecurity object that encapsulates the access control rules for the file described by the path parameter.

Excepciones

Se produjo un error de E/S al abrir el archivo.An I/O error occurred while opening the file.

El parámetro path es null.The path parameter is null.

No se encuentra el archivo.The file could not be found.

El parámetro path especificó un archivo que es de solo lectura.The path parameter specified a file that is read-only.

O bien-or- Esta operación no es compatible con la plataforma actual.This operation is not supported on the current platform.

O bien-or- El parámetro path especificó un directorio.The path parameter specified a directory.

O bien-or- El llamador no dispone del permiso requerido.The caller does not have the required permission.

Comentarios

Utilice el GetAccessControl método para recuperar las entradas de la lista de control de acceso (ACL) de un archivo.Use the GetAccessControl method to retrieve the access control list (ACL) entries for a file.

Una ACL describe los usuarios o grupos que tienen o no tienen derechos sobre acciones específicas en el archivo especificado.An ACL describes individuals and/or groups who have, or do not have, rights to specific actions on the given file. Para más información, consulte How to: Add or Remove Access Control List Entries (Cómo: Agregar o quitar entradas de la lista de control de acceso).For more information, see How to: Add or Remove Access Control List Entries.

En entornos NTFS, ReadAttributes y ReadExtendedAttributes se conceden al usuario si el usuario tiene ListDirectory derechos en la carpeta principal.In NTFS environments, ReadAttributes and ReadExtendedAttributes are granted to the user if the user has ListDirectory rights on the parent folder. Para ReadAttributes denegar ReadExtendedAttributesy, ListDirectory denegar en el directorio principal.To deny ReadAttributes and ReadExtendedAttributes, deny ListDirectory on the parent directory.

Seguridad

FileIOPermission
para obtener permiso para leer la lista de control de acceso.for permission to read the access control list. Acción de seguridad: Bajo.Security action: Demand. Enumeraciones asociadas: NoAccess,ViewAssociated enumerations: NoAccess, View

Se aplica a