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
type FileSecurity = class
    inherit FileSystemSecurity
Public NotInheritable Class FileSecurity
Inherits FileSystemSecurity
Herança

Exemplos

O exemplo de código a seguir usa a FileSecurity classe 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 FileSecurity classe especifica os direitos de acesso para 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 FileSystemAccessRule objeto. Cada regra de auditoria é representada por um FileSystemAuditRule objeto.

A classe FileSecurity é uma abstração do sistema de segurança de arquivos Microsoft Windows subjacente. 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 FileSystemAccessRule classes e as FileSystemAuditRule classes são abstrações das ACEs (entradas de controle de acesso) que compreendem DACLs e SACLs.

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

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

Use os seguintes .NET métodos dependentes de implementação para adicionar ou recuperar as regras de acesso ou auditoria de um arquivo:

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

Construtores

Nome Description
FileSecurity()

Inicializa uma nova instância da classe FileSecurity.

FileSecurity(String, AccessControlSections)

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

Propriedades

Nome Description
AccessRightType

Obtém a enumeração que a FileSystemSecurity classe 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 ObjectSecurity objeto foram modificadas.

(Herdado de ObjectSecurity)
AccessRuleType

Obtém a enumeração que a FileSystemSecurity classe 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 ObjectSecurity objeto 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 ObjectSecurity objeto está protegida.

(Herdado de ObjectSecurity)
AreAuditRulesCanonical

Obtém um valor booliano que especifica se as regras de auditoria associadas a esse ObjectSecurity objeto 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 ObjectSecurity objeto está protegida.

(Herdado de ObjectSecurity)
AuditRulesModified

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

(Herdado de ObjectSecurity)
AuditRuleType

Obtém o tipo que a FileSystemSecurity classe usa para representar 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 ObjectSecurity objeto é um objeto de contêiner.

(Herdado de ObjectSecurity)
IsDS

Obtém um valor booliano que especifica se esse ObjectSecurity objeto é 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)

Métodos

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

Inicializa uma nova instância da FileSystemAccessRule classe 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 CommonObjectSecurity objeto.

(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 CommonObjectSecurity objeto.

(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 FileSystemAuditRule classe 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 hash predefinida.

(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 ObjectSecurity objeto.

(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 esse ObjectSecurity objeto.

(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 CommonObjectSecurity objeto.

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

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

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

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

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

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

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

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

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

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

(Herdado de NativeObjectSecurity)
Persist(SafeHandle, AccessControlSections)

Salva as seções especificadas do descritor de segurança associado a esse NativeObjectSecurity objeto no armazenamento permanente. Recomendamos.persistir que os valores dos includeSections parâmetros 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 NativeObjectSecurity objeto no armazenamento permanente. Recomendamos que os valores dos includeSections parâmetros 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 NativeObjectSecurity objeto no armazenamento permanente. Recomendamos que os valores dos includeSections parâmetros 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 especificado IdentityReference.

(Herdado de ObjectSecurity)
PurgeAuditRules(IdentityReference)

Remove todas as regras de auditoria associadas ao especificado IdentityReference.

(Herdado de ObjectSecurity)
ReadLock()

Bloqueia este ObjectSecurity objeto para acesso de leitura.

(Herdado de ObjectSecurity)
ReadUnlock()

Desbloqueia este ObjectSecurity objeto 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 CommonObjectSecurity objeto.

(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 CommonObjectSecurity objeto.

(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 CommonObjectSecurity objeto.

(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 CommonObjectSecurity objeto.

(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 CommonObjectSecurity objeto.

(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 CommonObjectSecurity objeto.

(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 CommonObjectSecurity objeto 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 CommonObjectSecurity objeto 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 ObjectSecurity objeto. 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 CommonObjectSecurity objeto 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 ObjectSecurity objeto. 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 ObjectSecurity objeto.

(Herdado de ObjectSecurity)
SetOwner(IdentityReference)

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

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

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

(Herdado de ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[])

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

(Herdado de ObjectSecurity)
SetSecurityDescriptorSddlForm(String, AccessControlSections)

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

(Herdado de ObjectSecurity)
SetSecurityDescriptorSddlForm(String)

Define o descritor de segurança para esse ObjectSecurity objeto da cadeia de caracteres SDDL (Linguagem de Definição do Descritor de Segurança) especificada.

(Herdado de ObjectSecurity)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
WriteLock()

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

(Herdado de ObjectSecurity)
WriteUnlock()

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

(Herdado de ObjectSecurity)

Aplica-se a