Partilhar via


FileSecurity Classe

Definição

Representa o controle de acesso e a segurança de auditoria de um arquivo. Essa classe não pode ser herdada.

public ref class FileSecurity sealed : System::Security::AccessControl::FileSystemSecurity
public sealed class FileSecurity : System.Security.AccessControl.FileSystemSecurity
[System.Security.SecurityCritical]
public sealed class FileSecurity : System.Security.AccessControl.FileSystemSecurity
type FileSecurity = class
    inherit FileSystemSecurity
[<System.Security.SecurityCritical>]
type FileSecurity = class
    inherit FileSystemSecurity
Public NotInheritable Class FileSecurity
Inherits FileSystemSecurity
Herança
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 FileSecurity especifica os direitos de acesso de um arquivo do sistema e como as tentativas de acesso são auditadas. Essa classe representa direitos de acesso e auditoria como um conjunto de regras. Cada regra de acesso é representada por um objeto FileSystemAccessRule. Cada regra de auditoria é representada por um objeto FileSystemAuditRule.

A classe FileSecurity é uma abstração do sistema de segurança de arquivos subjacente do Microsoft Windows. Nesse sistema, cada arquivo tem uma DACL (lista de controle de acesso discricionário), que controla o acesso ao arquivo, 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 das ACEs (entradas de controle de acesso) que compõem DACLs e SACLs.

A classe FileSecurity oculta muitos dos detalhes de DACLs e SACLs; você não precisa se preocupar com pedidos ACE ou DACLs nulos.

Use a classe FileSecurity para recuperar, adicionar ou alterar as regras de acesso que representam o DACL e o SACL de um arquivo.

Use os seguintes métodos dependentes de implementação do .NET para adicionar ou recuperar as regras de acesso ou auditoria 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()

Construtores

FileSecurity()

Inicializa uma nova instância da classe FileSecurity.

FileSecurity(String, AccessControlSections)

Inicializa uma nova instância da classe FileSecurity de um arquivo especificado usando os valores especificados da enumeração AccessControlSections.

Propriedades

AccessRightType

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

(Herdado de FileSystemSecurity)
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.

(Herdado de FileSystemSecurity)
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.

(Herdado de FileSystemSecurity)
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.

(Herdado de FileSystemSecurity)
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.

(Herdado de FileSystemSecurity)
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.

(Herdado de FileSystemSecurity)
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.

(Herdado de FileSystemSecurity)
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.

(Herdado de FileSystemSecurity)
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.

(Herdado de FileSystemSecurity)
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.

(Herdado de FileSystemSecurity)
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.

(Herdado de FileSystemSecurity)
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.

(Herdado de FileSystemSecurity)
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.

(Herdado de FileSystemSecurity)
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.

(Herdado de FileSystemSecurity)
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.

(Herdado de FileSystemSecurity)
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.

(Herdado de FileSystemSecurity)
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