Compartilhar via


FileSystemSecurity Classe

Definição

Representa o controle de acesso e a segurança de auditoria para um arquivo ou diretório.

public ref class FileSystemSecurity abstract : System::Security::AccessControl::NativeObjectSecurity
public abstract class FileSystemSecurity : System.Security.AccessControl.NativeObjectSecurity
[System.Security.SecurityCritical]
public abstract class FileSystemSecurity : System.Security.AccessControl.NativeObjectSecurity
type FileSystemSecurity = class
    inherit NativeObjectSecurity
[<System.Security.SecurityCritical>]
type FileSystemSecurity = class
    inherit NativeObjectSecurity
Public MustInherit Class FileSystemSecurity
Inherits NativeObjectSecurity
Herança
Derivado
Atributos

Exemplos

O exemplo de código a seguir usa a classe FileSecurity para adicionar e, em seguida, remover uma entrada de ACL (lista de controle de acesso) de um arquivo. Você deve fornecer uma conta de usuário 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 = "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)
        {
            FileInfo fileInfo = new(fileName);
            FileSecurity fSecurity = fileInfo.GetAccessControl();

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

            // Set the new access settings.
            fileInfo.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)
        {
            FileInfo fileInfo = new(fileName);
            FileSecurity fSecurity = fileInfo.GetAccessControl();

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

            // Set the new access settings.
            fileInfo.SetAccessControl(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)

        Dim fileInfo As New FileInfo(fileName)
        Dim fSecurity As FileSecurity = fileInfo.GetAccessControl()

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

        fSecurity.AddAccessRule(accessRule)

        ' Set the new access settings.
        fileInfo.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)

        Dim fileInfo As New FileInfo(fileName)
        Dim fSecurity As FileSecurity = fileInfo.GetAccessControl()

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

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

    End Sub
End Module

Comentários

A classe FileSystemSecurity é a classe base das classes FileSecurity e DirectorySecurity. Essas classes representam todos os direitos de acesso para um arquivo ou diretório do sistema e definem como as tentativas de acesso são auditadas.

A classe FileSystemSecurity representa direitos de acesso e auditoria como um conjunto de regras. Cada regra de acesso é representada por um objeto FileSystemAccessRule, enquanto cada regra de auditoria é representada por um objeto FileSystemAuditRule.

A classe FileSystemSecurity é uma abstração do sistema de segurança de arquivos subjacente do Microsoft Windows. Nesse sistema, cada arquivo ou diretório tem uma DACL (lista de controle de acesso discricionário), que controla o acesso ao arquivo ou diretório, e uma SACL (lista de controle de acesso do sistema), que especifica as tentativas de controle de acesso auditadas. As classes FileSystemAccessRule e FileSystemAuditRule são abstrações de ACEs (entradas de controle de acesso) que compreendem DACLs e SACLs.

A classe FileSystemSecurity oculta muitos detalhes de DACLs e SACLs; você não precisa se preocupar com a ordenação ace ou DACLS nulo.

Use os seguintes métodos dependentes de implementação do .NET para adicionar ou recuperar informações de ACL de um arquivo:

Implementação do .NET Adicionar regras Recuperar regras
.REDE FileSystemAclExtensions.SetAccessControl(FileInfo, FileSecurity) FileSystemAclExtensions.GetAccessControl(FileInfo)
.NET Framework FileInfo.SetAccessControl(FileSecurity) FileInfo.GetAccessControl()

Propriedades

AccessRightType

Obtém a enumeração que a classe FileSystemSecurity usa para representar os direitos de acesso.

AccessRulesModified

Obtém ou define um valor booliano que especifica se as regras de acesso associadas a esse objeto ObjectSecurity foram modificadas.

(Herdado de ObjectSecurity)
AccessRuleType

Obtém a enumeração que a classe FileSystemSecurity usa para representar as regras de acesso.

AreAccessRulesCanonical

Obtém um valor booliano que especifica se as regras de acesso associadas a esse objeto ObjectSecurity estão em ordem canônica.

(Herdado de ObjectSecurity)
AreAccessRulesProtected

Obtém um valor booliano que especifica se a DACL (Lista de Controle de Acesso Discricionário) associada a esse objeto ObjectSecurity está protegida.

(Herdado de ObjectSecurity)
AreAuditRulesCanonical

Obtém um valor booliano que especifica se as regras de auditoria associadas a esse objeto ObjectSecurity estão em ordem canônica.

(Herdado de ObjectSecurity)
AreAuditRulesProtected

Obtém um valor booliano que especifica se a SACL (Lista de Controle de Acesso do Sistema) associada a esse objeto ObjectSecurity está protegida.

(Herdado de ObjectSecurity)
AuditRulesModified

Obtém ou define um valor booliano que especifica se as regras de auditoria associadas a esse objeto ObjectSecurity foram modificadas.

(Herdado de ObjectSecurity)
AuditRuleType

Obtém o tipo que a classe FileSystemSecurity usa para representar as regras de auditoria.

GroupModified

Obtém ou define um valor booliano que especifica se o grupo associado ao objeto protegível foi modificado.

(Herdado de ObjectSecurity)
IsContainer

Obtém um valor booliano que especifica se esse objeto ObjectSecurity é um objeto de contêiner.

(Herdado de ObjectSecurity)
IsDS

Obtém um valor booliano que especifica se esse objeto ObjectSecurity é um objeto de diretório.

(Herdado de ObjectSecurity)
OwnerModified

Obtém ou define um valor booliano que especifica se o proprietário do objeto protegível foi modificado.

(Herdado de ObjectSecurity)
SecurityDescriptor

Obtém o descritor de segurança para essa instância.

(Herdado de ObjectSecurity)

Métodos

AccessRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AccessControlType)

Inicializa uma nova instância da classe FileSystemAccessRule que representa uma nova regra de controle de acesso para o usuário especificado, com os direitos de acesso, o controle de acesso e os sinalizadores especificados.

AddAccessRule(AccessRule)

Adiciona a regra de acesso especificada à DACL (Lista de Controle de Acesso Discricionário) associada a esse objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
AddAccessRule(FileSystemAccessRule)

Adiciona a permissão de ACL (lista de controle de acesso) especificada ao arquivo ou diretório atual.

AddAuditRule(AuditRule)

Adiciona a regra de auditoria especificada à SACL (Lista de Controle de Acesso do Sistema) associada a esse objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
AddAuditRule(FileSystemAuditRule)

Adiciona a regra de auditoria especificada ao arquivo ou diretório atual.

AuditRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AuditFlags)

Inicializa uma nova instância da classe FileSystemAuditRule que representa a regra de auditoria especificada para o usuário especificado.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetAccessRules(Boolean, Boolean, Type)

Obtém uma coleção das regras de acesso associadas ao identificador de segurança especificado.

(Herdado de CommonObjectSecurity)
GetAuditRules(Boolean, Boolean, Type)

Obtém uma coleção das regras de auditoria associadas ao identificador de segurança especificado.

(Herdado de CommonObjectSecurity)
GetGroup(Type)

Obtém o grupo primário associado ao proprietário especificado.

(Herdado de ObjectSecurity)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetOwner(Type)

Obtém o proprietário associado ao grupo primário especificado.

(Herdado de ObjectSecurity)
GetSecurityDescriptorBinaryForm()

Retorna uma matriz de valores de bytes que representa as informações do descritor de segurança para esse objeto ObjectSecurity.

(Herdado de ObjectSecurity)
GetSecurityDescriptorSddlForm(AccessControlSections)

Retorna a representação SDDL (Security Descriptor Definition Language) das seções especificadas do descritor de segurança associado a este objeto ObjectSecurity.

(Herdado de ObjectSecurity)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ModifyAccess(AccessControlModification, AccessRule, Boolean)

Aplica a modificação especificada à DACL (Lista de Controle de Acesso Discricionário) associada a esse objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
ModifyAccessRule(AccessControlModification, AccessRule, Boolean)

Aplica a modificação especificada à DACL (Lista de Controle de Acesso Discricionário) associada a esse objeto ObjectSecurity.

(Herdado de ObjectSecurity)
ModifyAudit(AccessControlModification, AuditRule, Boolean)

Aplica a modificação especificada à SACL (Lista de Controle de Acesso do Sistema) associada a esse objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
ModifyAuditRule(AccessControlModification, AuditRule, Boolean)

Aplica a modificação especificada à SACL (Lista de Controle de Acesso do Sistema) associada a esse objeto ObjectSecurity.

(Herdado de ObjectSecurity)
Persist(Boolean, String, AccessControlSections)

Salva as seções especificadas do descritor de segurança associado a esse objeto ObjectSecurity para armazenamento permanente. Recomendamos que os valores dos parâmetros de includeSections passados para o construtor e os métodos persistentes sejam idênticos.

(Herdado de ObjectSecurity)
Persist(SafeHandle, AccessControlSections)

Salva as seções especificadas do descritor de segurança associado a esse objeto NativeObjectSecurity para armazenamento permanente. Recomendamos.persistir que os valores dos parâmetros de includeSections passados para o construtor e os métodos persistentes sejam idênticos.

(Herdado de NativeObjectSecurity)
Persist(SafeHandle, AccessControlSections, Object)

Salva as seções especificadas do descritor de segurança associado a esse objeto NativeObjectSecurity para armazenamento permanente. Recomendamos que os valores dos parâmetros de includeSections passados para o construtor e os métodos persistentes sejam idênticos.

(Herdado de NativeObjectSecurity)
Persist(String, AccessControlSections)

Salva as seções especificadas do descritor de segurança associado a esse objeto NativeObjectSecurity para armazenamento permanente. Recomendamos que os valores dos parâmetros de includeSections passados para o construtor e os métodos persistentes sejam idênticos.

(Herdado de NativeObjectSecurity)
Persist(String, AccessControlSections, Object)

Salva as seções especificadas do descritor de segurança associado a esse objeto NativeObjectSecurity para armazenamento permanente. Recomendamos que os valores dos parâmetros de includeSections passados para o construtor e os métodos persistentes sejam idênticos.

(Herdado de NativeObjectSecurity)
PurgeAccessRules(IdentityReference)

Remove todas as regras de acesso associadas ao IdentityReferenceespecificado.

(Herdado de ObjectSecurity)
PurgeAuditRules(IdentityReference)

Remove todas as regras de auditoria associadas ao IdentityReferenceespecificado.

(Herdado de ObjectSecurity)
ReadLock()

Bloqueia esse objeto ObjectSecurity para acesso de leitura.

(Herdado de ObjectSecurity)
ReadUnlock()

Desbloqueia esse objeto ObjectSecurity para acesso de leitura.

(Herdado de ObjectSecurity)
RemoveAccessRule(AccessRule)

Remove regras de acesso que contêm o mesmo identificador de segurança e máscara de acesso que a regra de acesso especificada da DACL (Lista de Controle de Acesso Discricionário) associada a esse objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAccessRule(FileSystemAccessRule)

Remove todas as permissões de ACL (lista de controle de acesso) correspondentes do arquivo ou diretório atual.

RemoveAccessRuleAll(AccessRule)

Remove todas as regras de acesso que têm o mesmo identificador de segurança que a regra de acesso especificada da DACL (Lista de Controle de Acesso Discricionário) associada a esse objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAccessRuleAll(FileSystemAccessRule)

Remove todas as permissões de ACL (lista de controle de acesso) para o usuário especificado do arquivo ou diretório atual.

RemoveAccessRuleSpecific(AccessRule)

Remove todas as regras de acesso que correspondem exatamente à regra de acesso especificada da DACL (Lista de Controle de Acesso Discricionário) associada a esse objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAccessRuleSpecific(FileSystemAccessRule)

Remove uma única permissão de ACL (lista de controle de acesso) correspondente do arquivo ou diretório atual.

RemoveAuditRule(AuditRule)

Remove regras de auditoria que contêm o mesmo identificador de segurança e máscara de acesso que a regra de auditoria especificada da SACL (Lista de Controle de Acesso do Sistema) associada a esse objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAuditRule(FileSystemAuditRule)

Remove todas as regras de permissão ou de auditoria correspondentes do diretório ou arquivo atual.

RemoveAuditRuleAll(AuditRule)

Remove todas as regras de auditoria que têm o mesmo identificador de segurança que a regra de auditoria especificada da SACL (Lista de Controle de Acesso do Sistema) associada a esse objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAuditRuleAll(FileSystemAuditRule)

Remove todas as regras de auditoria para o usuário especificado do arquivo ou diretório atual.

RemoveAuditRuleSpecific(AuditRule)

Remove todas as regras de auditoria que correspondem exatamente à regra de auditoria especificada da SACL (Lista de Controle de Acesso do Sistema) associada a esse objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAuditRuleSpecific(FileSystemAuditRule)

Remove uma única regra de auditoria de permissão ou negação de correspondência do arquivo ou diretório atual.

ResetAccessRule(AccessRule)

Remove todas as regras de acesso na DACL (Lista de Controle de Acesso Discricionário) associada a esse objeto CommonObjectSecurity e adiciona a regra de acesso especificada.

(Herdado de CommonObjectSecurity)
ResetAccessRule(FileSystemAccessRule)

Adiciona a permissão de ACL (lista de controle de acesso) especificada ao arquivo ou diretório atual e remove todas as permissões de ACL correspondentes.

SetAccessRule(AccessRule)

Remove todas as regras de acesso que contêm o mesmo identificador de segurança e qualificador que a regra de acesso especificada na DACL (Lista de Controle de Acesso Discricionário) associada a esse objeto CommonObjectSecurity e adiciona a regra de acesso especificada.

(Herdado de CommonObjectSecurity)
SetAccessRule(FileSystemAccessRule)

Define a permissão de ACL (lista de controle de acesso) especificada para o arquivo ou diretório atual.

SetAccessRuleProtection(Boolean, Boolean)

Define ou remove a proteção das regras de acesso associadas a esse objeto ObjectSecurity. As regras de acesso protegido não podem ser modificadas por objetos pai por meio de herança.

(Herdado de ObjectSecurity)
SetAuditRule(AuditRule)

Remove todas as regras de auditoria que contêm o mesmo identificador de segurança e qualificador que a regra de auditoria especificada na SACL (Lista de Controle de Acesso do Sistema) associada a esse objeto CommonObjectSecurity e adiciona a regra de auditoria especificada.

(Herdado de CommonObjectSecurity)
SetAuditRule(FileSystemAuditRule)

Define a regra de auditoria especificada para o arquivo ou diretório atual.

SetAuditRuleProtection(Boolean, Boolean)

Define ou remove a proteção das regras de auditoria associadas a esse objeto ObjectSecurity. As regras de auditoria protegidas não podem ser modificadas por objetos pai por meio da herança.

(Herdado de ObjectSecurity)
SetGroup(IdentityReference)

Define o grupo primário para o descritor de segurança associado a esse objeto ObjectSecurity.

(Herdado de ObjectSecurity)
SetOwner(IdentityReference)

Define o proprietário do descritor de segurança associado a esse objeto ObjectSecurity.

(Herdado de ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[])

Define o descritor de segurança para esse objeto ObjectSecurity da matriz especificada de valores de bytes.

(Herdado de ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[], AccessControlSections)

Define as seções especificadas do descritor de segurança para este objeto ObjectSecurity da matriz especificada de valores de bytes.

(Herdado de ObjectSecurity)
SetSecurityDescriptorSddlForm(String)

Define o descritor de segurança para esse objeto ObjectSecurity da cadeia de caracteres SDDL (Security Descriptor Definition Language) especificada.

(Herdado de ObjectSecurity)
SetSecurityDescriptorSddlForm(String, AccessControlSections)

Define as seções especificadas do descritor de segurança para este objeto ObjectSecurity da cadeia de caracteres SDDL (Security Descriptor Definition Language) especificada.

(Herdado de ObjectSecurity)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
WriteLock()

Bloqueia esse objeto ObjectSecurity para acesso de gravação.

(Herdado de ObjectSecurity)
WriteUnlock()

Desbloqueia esse objeto ObjectSecurity para acesso de gravação.

(Herdado de ObjectSecurity)

Aplica-se a