FileSystemSecurity Classe

Definição

Representa o controle de acesso e auditoria de segurança de 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 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 grupo ou de usuário válida para executar este exemplo.

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

Comentários

A FileSystemSecurity classe é a classe base para as classes e DirectorySecurity as FileSecurity classes. 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 FileSystemSecurity classe representa os direitos de acesso e auditoria como um conjunto de regras. Cada regra de acesso é representada por um FileSystemAccessRule objeto, enquanto cada regra de auditoria é representada por um FileSystemAuditRule objeto.

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

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

Para manter informações de ACL (lista de controle de acesso) novas ou alteradas em um arquivo, use o método ou SetAccessControl o SetAccessControl método. Para persistir informações de ACL novas ou alteradas em um diretório, use o método ou SetAccessControl o SetAccessControl método.

Para recuperar informações de ACL de um arquivo, use o método ou GetAccessControl o GetAccessControl método. Para recuperar informações de ACL de um diretório, use o método ou GetAccessControl o GetAccessControl método.

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 este 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 este objeto ObjectSecurity estão na 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 este objeto ObjectSecurity estão na 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 este 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 este ObjectSecurity é um objeto contêiner.

(Herdado de ObjectSecurity)
IsDS

Obtém um valor booliano que especifica se este 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 esta 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)

Aplica 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 lista de controle de acesso (ACL) especificada ao arquivo ou diretório atual.

AddAuditRule(AuditRule)

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

(Herdado de CommonObjectSecurity)
AddAuditRule(FileSystemAuditRule)

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

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

Inicializa uma nova instância da classe FileSystemAuditRule que representa a regra de auditoria 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 byte que representa as informações do descritor de segurança para este objeto ObjectSecurity.

(Herdado de ObjectSecurity)
GetSecurityDescriptorSddlForm(AccessControlSections)

Retorna a representação em SDDL (Linguagem de Definição do Descritor de Segurança) 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 Object atual.

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

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

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

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

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

(Herdado de ObjectSecurity)
Persist(SafeHandle, AccessControlSections)

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

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

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

(Herdado de NativeObjectSecurity)
Persist(String, AccessControlSections)

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

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

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

(Herdado de NativeObjectSecurity)
PurgeAccessRules(IdentityReference)

Remove todas as regras de acesso associadas à IdentityReference especificada.

(Herdado de ObjectSecurity)
PurgeAuditRules(IdentityReference)

Remove todas as regras de auditoria associadas ao IdentityReference especificado.

(Herdado de ObjectSecurity)
ReadLock()

Bloqueia este objeto ObjectSecurity para acesso de leitura.

(Herdado de ObjectSecurity)
ReadUnlock()

Desbloqueia este objeto ObjectSecurity para acesso de leitura.

(Herdado de ObjectSecurity)
RemoveAccessRule(AccessRule)

Remove as regras de acesso que contêm a mesma máscara de acesso e o identificador de segurança, como 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 do diretório ou arquivo atual todas as permissões de negar ou permitir da ACL (lista de controle de acesso) que forem correspondentes.

RemoveAccessRuleAll(AccessRule)

Remove todas as regras de acesso que correspondem ao mesmo identificador de segurança que a regra de acesso especificada da DACL (Lista de Controle de Acesso Discricionário) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAccessRuleAll(FileSystemAccessRule)

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

RemoveAccessRuleSpecific(AccessRule)

Remove todas as regras de acesso que correspondem com exatidão à regra de acesso especificada da DACL (Lista de Controle de Acesso Discricionário) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAccessRuleSpecific(FileSystemAccessRule)

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

RemoveAuditRule(AuditRule)

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

(Herdado de CommonObjectSecurity)
RemoveAuditRule(FileSystemAuditRule)

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

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

(Herdado de CommonObjectSecurity)
RemoveAuditRuleAll(FileSystemAuditRule)

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

RemoveAuditRuleSpecific(AuditRule)

Remove todas as regras de auditoria que correspondem com exatidão à regra de auditoria especificada na SACL (Lista de Controle de Acesso do Sistema) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAuditRuleSpecific(FileSystemAuditRule)

Remove do diretório ou arquivo atual uma única regra de auditoria correspondente.

ResetAccessRule(AccessRule)

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

(Herdado de CommonObjectSecurity)
ResetAccessRule(FileSystemAccessRule)

Adiciona a permissão de lista de controle de acesso (ACL) 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, em seguida, adiciona a regra de acesso indicada.

(Herdado de CommonObjectSecurity)
SetAccessRule(FileSystemAccessRule)

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

SetAccessRuleProtection(Boolean, Boolean)

Define ou remove a proteção das regras de acesso associada a este objeto ObjectSecurity. As regras de acesso protegidas não podem ser modificadas por objetos pai por meio da 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 este objeto CommonObjectSecurity e, em seguida, adiciona a regra de auditoria indicada.

(Herdado de CommonObjectSecurity)
SetAuditRule(FileSystemAuditRule)

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

SetAuditRuleProtection(Boolean, Boolean)

Define ou remove a proteção das regras de auditoria associadas a este 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 para o descritor de segurança associado a esse objeto ObjectSecurity.

(Herdado de ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[])

Define o descritor de segurança para este objeto ObjectSecurity da matriz especificada de valores de byte.

(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 byte.

(Herdado de ObjectSecurity)
SetSecurityDescriptorSddlForm(String)

Define o descritor de segurança para este objeto ObjectSecurity da cadeia de caracteres SDDL (Linguagem de Definição do Descritor de Segurança) 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 (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 este objeto ObjectSecurity para acesso de gravação.

(Herdado de ObjectSecurity)
WriteUnlock()

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

(Herdado de ObjectSecurity)

Aplica-se a