FileInfo.GetAccessControl Método

Definição

Obtém um FileSecurity objeto que encapsula as entradas da lista de controlo de acesso (ACL) para o ficheiro descrito pelo objeto atual FileInfo .

Sobrecargas

Name Description
GetAccessControl(AccessControlSections)

Obtém um FileSecurity objeto que encapsula o tipo especificado de entradas da lista de controlo de acesso (ACL) para o ficheiro descrito pelo objeto atual FileInfo .

GetAccessControl()

Obtém um FileSecurity objeto que encapsula as entradas da lista de controlo de acesso (ACL) para o ficheiro descrito pelo objeto atual FileInfo .

GetAccessControl(AccessControlSections)

Obtém um FileSecurity objeto que encapsula o tipo especificado de entradas da lista de controlo de acesso (ACL) para o ficheiro descrito pelo objeto atual FileInfo .

public:
 System::Security::AccessControl::FileSecurity ^ GetAccessControl(System::Security::AccessControl::AccessControlSections includeSections);
public System.Security.AccessControl.FileSecurity GetAccessControl(System.Security.AccessControl.AccessControlSections includeSections);
member this.GetAccessControl : System.Security.AccessControl.AccessControlSections -> System.Security.AccessControl.FileSecurity
Public Function GetAccessControl (includeSections As AccessControlSections) As FileSecurity

Parâmetros

includeSections
AccessControlSections

Um dos AccessControlSections valores que especifica que grupo de entradas de controlo de acesso recuperar.

Devoluções

Um objeto que encapsula as regras de FileSecurity controlo de acesso para o ficheiro atual.

Exceções

Ocorreu um erro de E/S durante a abertura do ficheiro.

A conta do sistema atual não tem privilégios administrativos.

O ficheiro não foi encontrado.

Esta operação não é suportada na plataforma atual.

-ou-

O interlocutor não tem a permissão necessária.

Observações

Use o GetAccessControl método para recuperar as entradas da lista de controlo de acesso (ACL) para o ficheiro atual.

Uma ACL descreve indivíduos e grupos que têm, ou não têm, direitos sobre ações específicas no determinado ficheiro. Para obter mais informações, consulte Como adicionar ou remover entradas da lista de controle de acesso.

Aplica-se a

GetAccessControl()

Obtém um FileSecurity objeto que encapsula as entradas da lista de controlo de acesso (ACL) para o ficheiro descrito pelo objeto atual FileInfo .

public:
 System::Security::AccessControl::FileSecurity ^ GetAccessControl();
public System.Security.AccessControl.FileSecurity GetAccessControl();
member this.GetAccessControl : unit -> System.Security.AccessControl.FileSecurity
Public Function GetAccessControl () As FileSecurity

Devoluções

Um objeto que encapsula as regras de FileSecurity controlo de acesso para o ficheiro atual.

Exceções

Ocorreu um erro de E/S durante a abertura do ficheiro.

A conta do sistema atual não tem privilégios administrativos.

O ficheiro não foi encontrado.

Esta operação não é suportada na plataforma atual.

-ou-

O interlocutor não tem a permissão necessária.

Exemplos

O exemplo de código seguinte utiliza o GetAccessControl método e o SetAccessControl método para adicionar e depois remover uma entrada de lista de controlo de acesso (ACL) de um ficheiro. Deve fornecer uma conta de utilizador ou grupo válida para executar este exemplo.

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

namespace FileSystemExample
{
    class FileExample
    {
        public static void Main()
        {
            try
            {
                string FileName = "c:/test.xml";

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

                // Add the access control entry to the file.
                // Before compiling this snippet, change MyDomain to your
                // domain name and MyAccessAccount to the name
                // you use to access your domain.
                AddFileSecurity(FileName, @"MyDomain\MyAccessAccount", FileSystemRights.ReadData, AccessControlType.Allow);

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

                // Remove the access control entry from the file.
                // Before compiling this snippet, change MyDomain to your
                // domain name and MyAccessAccount to the name
                // you use to access your domain.
                RemoveFileSecurity(FileName, @"MyDomain\MyAccessAccount", 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
            )
        {
            // Create a new FileInfo object.
            FileInfo fInfo = new(FileName);

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

            // Add the FileSystemAccessRule to the security settings.
            fSecurity.AddAccessRule(new FileSystemAccessRule(Account,
                                                            Rights,
                                                            ControlType));

            // Set the new access settings.
            fInfo.SetAccessControl(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
            )
        {
            // Create a new FileInfo object.
            FileInfo fInfo = new(FileName);

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

            // Add the FileSystemAccessRule to the security settings.
            fSecurity.RemoveAccessRule(new FileSystemAccessRule(Account,
                                                            Rights,
                                                            ControlType));

            // Set the new access settings.
            fInfo.SetAccessControl(fSecurity);
        }
    }
}
//This code produces output similar to the following;
//results may vary based on the computer/file structure/etc.:
//
//Adding access control entry for c:\test.xml
//Removing access control entry from c:\test.xml
//Done.
//
Imports System.IO
Imports System.Security.AccessControl



Module FileExample

    Sub Main()
        Try
            Dim FileName As String = "c:\test.xml"

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

            ' Add the access control entry to the file.
            ' Before compiling this snippet, change MyDomain to your 
            ' domain name and MyAccessAccount to the name 
            ' you use to access your domain.
            AddFileSecurity(FileName, "MyDomain\\MyAccessAccount", FileSystemRights.ReadData, AccessControlType.Allow)

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

            ' Remove the access control entry from the file.
            ' Before compiling this snippet, change MyDomain to your 
            ' domain name and MyAccessAccount to the name 
            ' you use to access your domain.
            RemoveFileSecurity(FileName, "MyDomain\\MyAccessAccount", 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)
        ' Create a new FileInfo object.
        Dim fInfo As New FileInfo(FileName)

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

        ' Add the FileSystemAccessRule to the security settings. 
        fSecurity.AddAccessRule(New FileSystemAccessRule(Account, Rights, ControlType))

        ' Set the new access settings.
        fInfo.SetAccessControl(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)
        ' Create a new FileInfo object.
        Dim fInfo As New FileInfo(FileName)

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

        ' Add the FileSystemAccessRule to the security settings. 
        fSecurity.RemoveAccessRule(New FileSystemAccessRule(Account, Rights, ControlType))

        ' Set the new access settings.
        fInfo.SetAccessControl(fSecurity)

    End Sub
End Module
'This code produces output similar to the following; 
'results may vary based on the computer/file structure/etc.:
'
'Adding access control entry for c:\test.xml
'Removing access control entry from c:\test.xml
'Done.
'

Observações

Use o GetAccessControl método para recuperar as entradas da lista de controlo de acesso (ACL) para o ficheiro atual.

Uma ACL descreve indivíduos e grupos que têm, ou não têm, direitos sobre ações específicas no determinado ficheiro. Para obter mais informações, consulte Como adicionar ou remover entradas da lista de controle de acesso.

Aplica-se a