DirectorySecurity Classe

Definição

Representa o controlo de acesso e a segurança de auditoria de um diretório. Esta classe não pode ser herdada.

public ref class DirectorySecurity sealed : System::Security::AccessControl::FileSystemSecurity
public sealed class DirectorySecurity : System.Security.AccessControl.FileSystemSecurity
type DirectorySecurity = class
    inherit FileSystemSecurity
Public NotInheritable Class DirectorySecurity
Inherits FileSystemSecurity
Herança

Exemplos

O exemplo de código seguinte utiliza a DirectorySecurity classe para adicionar e depois remover uma entrada de lista de controlo de acesso (ACL) de um diretório. 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 DirectoryExample
    {
        public static void Main()
        {
            try
            {
                string DirectoryName = "TestDirectory";

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

                // Add the access control entry to the directory.
                AddDirectorySecurity(DirectoryName, @"MYDOMAIN\MyAccount", FileSystemRights.ReadData, AccessControlType.Allow);

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

                // Remove the access control entry from the directory.
                RemoveDirectorySecurity(DirectoryName, @"MYDOMAIN\MyAccount", FileSystemRights.ReadData, AccessControlType.Allow);

                Console.WriteLine("Done.");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            Console.ReadLine();
        }

        // Adds an ACL entry on the specified directory for the specified account.
        public static void AddDirectorySecurity(
            string DirectoryName,
            string Account,
            FileSystemRights Rights,
            AccessControlType ControlType
            )
        {
            // Create a new DirectoryInfo object.
            DirectoryInfo dInfo = new(DirectoryName);

            // Get a DirectorySecurity object that represents the
            // current security settings.
            DirectorySecurity dSecurity = dInfo.GetAccessControl();

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

            // Set the new access settings.
            dInfo.SetAccessControl(dSecurity);
        }

        // Removes an ACL entry on the specified directory for the specified account.
        public static void RemoveDirectorySecurity(
            string DirectoryName,
            string Account,
            FileSystemRights Rights,
            AccessControlType ControlType
            )
        {
            // Create a new DirectoryInfo object.
            DirectoryInfo dInfo = new(DirectoryName);

            // Get a DirectorySecurity object that represents the
            // current security settings.
            DirectorySecurity dSecurity = dInfo.GetAccessControl();

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

            // Set the new access settings.
            dInfo.SetAccessControl(dSecurity);
        }
    }
}
Imports System.IO
Imports System.Security.AccessControl



Module DirectoryExample

    Sub Main()
        Try
            Dim DirectoryName As String = "TestDirectory"

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

            ' Add the access control entry to the directory.
            AddDirectorySecurity(DirectoryName, "MYDOMAIN\MyAccount", FileSystemRights.ReadData, AccessControlType.Allow)

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

            ' Remove the access control entry from the directory.
            RemoveDirectorySecurity(DirectoryName, "MYDOMAIN\MyAccount", FileSystemRights.ReadData, AccessControlType.Allow)

            Console.WriteLine("Done.")
        Catch e As Exception
            Console.WriteLine(e)
        End Try

        Console.ReadLine()

    End Sub


    ' Adds an ACL entry on the specified directory for the specified account.
    Sub AddDirectorySecurity(ByVal FileName As String, ByVal Account As String, ByVal Rights As FileSystemRights, ByVal ControlType As AccessControlType)
        ' Create a new DirectoryInfoobject.
        Dim dInfo As New DirectoryInfo(FileName)

        ' Get a DirectorySecurity object that represents the 
        ' current security settings.
        Dim dSecurity As DirectorySecurity = dInfo.GetAccessControl()

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

        ' Set the new access settings.
        dInfo.SetAccessControl(dSecurity)

    End Sub


    ' Removes an ACL entry on the specified directory for the specified account.
    Sub RemoveDirectorySecurity(ByVal FileName As String, ByVal Account As String, ByVal Rights As FileSystemRights, ByVal ControlType As AccessControlType)
        ' Create a new DirectoryInfo object.
        Dim dInfo As New DirectoryInfo(FileName)

        ' Get a DirectorySecurity object that represents the 
        ' current security settings.
        Dim dSecurity As DirectorySecurity = dInfo.GetAccessControl()

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

        ' Set the new access settings.
        dInfo.SetAccessControl(dSecurity)

    End Sub
End Module

Observações

A DirectorySecurity classe especifica os direitos de acesso para um diretório do sistema e como as tentativas de acesso são auditadas. Esta 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 classe DirectorySecurity é uma abstração do sistema de segurança de ficheiros Windows subjacente. Neste sistema, cada diretório tem uma lista de controlo de acesso discricionária (DACL), que controla o acesso ao diretório, e uma lista de controlo de acesso ao sistema (SACL), que especifica as tentativas de controlo de acesso auditadas. As FileSystemAccessRule classes and FileSystemAuditRule são abstrações das entradas de controlo de acesso (ACEs) que compõem os DACLs e SACLs.

A DirectorySecurity classe esconde muitos dos detalhes dos DACLs e SACLs; não tens de te preocupar com a ordem dos 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 ficheiro.

As tabelas seguintes listam os métodos que pode usar para aceder e manter a segurança dos diretórios.

Tarefa Methods
Adicionar regras FileSystemSecurity.AddAccessRule

FileSystemSecurity.AddAuditRule
Remover regras FileSystemSecurity.RemoveAccessRule

FileSystemSecurity.RemoveAuditRule
Recuperar o controlo de acesso para um diretório FileSystemAclExtensions.GetAccessControl(DirectoryInfo)

DirectoryInfo.GetAccessControl
Persistir o controlo de acesso a um diretório FileSystemAclExtensions.SetAccessControl(DirectoryInfo, DirectorySecurity)

DirectoryInfo.SetAccessControl

Construtores

Name Description
DirectorySecurity()

Inicializa uma nova instância da DirectorySecurity classe.

DirectorySecurity(String, AccessControlSections)

Inicializa uma nova instância da DirectorySecurity classe a partir de um diretório especificado usando os valores especificados da AccessControlSections enumeração.

Propriedades

Name Description
AccessRightType

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

(Herdado de FileSystemSecurity)
AccessRulesModified

Recebe ou define um valor booleano que especifica se as regras de acesso associadas a este 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 booleano que especifica se as regras de acesso associadas a este ObjectSecurity objeto estão em ordem canónica.

(Herdado de ObjectSecurity)
AreAccessRulesProtected

Recebe um valor booleano que especifica se a Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto ObjectSecurity está protegida.

(Herdado de ObjectSecurity)
AreAuditRulesCanonical

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

(Herdado de ObjectSecurity)
AreAuditRulesProtected

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

(Herdado de ObjectSecurity)
AuditRulesModified

Recebe ou define um valor booleano que especifica se as regras de auditoria associadas a este 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

Recebe ou define um valor booleano que especifica se o grupo associado ao objeto securável foi modificado.

(Herdado de ObjectSecurity)
IsContainer

Obtém um valor booleano que especifica se este ObjectSecurity objeto é um objeto contentor.

(Herdado de ObjectSecurity)
IsDS

Obtém um valor booleano que especifica se este ObjectSecurity objeto é um objeto de diretório.

(Herdado de ObjectSecurity)
OwnerModified

Recebe ou define um valor booleano que especifica se o proprietário do objeto securável foi modificado.

(Herdado de ObjectSecurity)

Métodos

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

Inicializa uma nova instância da FileSystemAccessRule classe que representa uma nova regra de controlo de acesso para o utilizador especificado, com os direitos de acesso especificados, controlo de acesso e flags.

(Herdado de FileSystemSecurity)
AddAccessRule(AccessRule)

Adiciona a regra de acesso especificada à Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
AddAccessRule(FileSystemAccessRule)

Adiciona a permissão especificada da lista de controlo de acesso (ACL) ao ficheiro ou diretório atual.

(Herdado de FileSystemSecurity)
AddAuditRule(AuditRule)

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

(Herdado de CommonObjectSecurity)
AddAuditRule(FileSystemAuditRule)

Adiciona a regra de auditoria especificada ao ficheiro 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 utilizador 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 principal associado ao proprietário especificado.

(Herdado de ObjectSecurity)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetOwner(Type)

Associa o proprietário ao grupo principal especificado.

(Herdado de ObjectSecurity)
GetSecurityDescriptorBinaryForm()

Devolve um array de valores de bytes que representa a informação do descritor de segurança para este ObjectSecurity objeto.

(Herdado de ObjectSecurity)
GetSecurityDescriptorSddlForm(AccessControlSections)

Devolve a representação da Linguagem de Definição de Descritores de Segurança (SDDL) das secções especificadas do descritor de segurança associado a este ObjectSecurity objeto.

(Herdado de ObjectSecurity)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

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

Aplica a modificação especificada à Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto CommonObjectSecurity.

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

Aplica a modificação especificada à Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto ObjectSecurity.

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

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

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

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

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

Guarda as secções especificadas do descritor de segurança associado a este ObjectSecurity objeto para armazenamento permanente. Recomendamos que os valores dos includeSections parâmetros passados ao construtor e aos métodos persist sejam idênticos.

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

Guarda as secções especificadas do descritor de segurança associado a este NativeObjectSecurity objeto para armazenamento permanente. Recomendamos que os valores dos includeSections parâmetros passados ao construtor e aos métodos persist sejam idênticos.

(Herdado de NativeObjectSecurity)
Persist(SafeHandle, AccessControlSections)

Guarda as secções especificadas do descritor de segurança associado a este NativeObjectSecurity objeto para armazenamento permanente. Recomendamos persistir que os valores dos includeSections parâmetros passados ao construtor e aos métodos persist sejam idênticos.

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

Guarda as secções especificadas do descritor de segurança associado a este NativeObjectSecurity objeto para armazenamento permanente. Recomendamos que os valores dos includeSections parâmetros passados ao construtor e aos métodos persist sejam idênticos.

(Herdado de NativeObjectSecurity)
Persist(String, AccessControlSections)

Guarda as secções especificadas do descritor de segurança associado a este NativeObjectSecurity objeto para armazenamento permanente. Recomendamos que os valores dos includeSections parâmetros passados ao construtor e aos métodos persist sejam idênticos.

(Herdado de NativeObjectSecurity)
PurgeAccessRules(IdentityReference)

Remove todas as regras de acesso associadas ao .IdentityReference

(Herdado de ObjectSecurity)
PurgeAuditRules(IdentityReference)

Remove todas as regras de auditoria associadas ao .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 contenham o mesmo identificador de segurança e máscara de acesso que a regra de acesso especificada da Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAccessRule(FileSystemAccessRule)

Remove todas as permissões correspondentes de permitir ou negar a lista de controlo de acesso (ACL) do ficheiro ou diretório atual.

(Herdado de FileSystemSecurity)
RemoveAccessRuleAll(AccessRule)

Remove todas as regras de acesso que tenham o mesmo identificador de segurança da regra de acesso especificada da Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAccessRuleAll(FileSystemAccessRule)

Remove todas as permissões da lista de controlo de acesso (ACL) para o utilizador especificado do ficheiro ou diretório atual.

(Herdado de FileSystemSecurity)
RemoveAccessRuleSpecific(AccessRule)

Remove todas as regras de acesso que correspondam exatamente à regra de acesso especificada da Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAccessRuleSpecific(FileSystemAccessRule)

Remove uma única permissão correspondente de permitir ou negar a lista de controlo de acesso (ACL) do ficheiro ou diretório atual.

(Herdado de FileSystemSecurity)
RemoveAuditRule(AuditRule)

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

(Herdado de CommonObjectSecurity)
RemoveAuditRule(FileSystemAuditRule)

Remove todas as regras de auditoria correspondentes de permitir ou negar do ficheiro ou diretório atual.

(Herdado de FileSystemSecurity)
RemoveAuditRuleAll(AuditRule)

Remove todas as regras de auditoria que tenham o mesmo identificador de segurança da regra de auditoria especificada da Lista de Controlo de Acesso do Sistema (SACL) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAuditRuleAll(FileSystemAuditRule)

Remove todas as regras de auditoria do utilizador especificado do ficheiro ou diretório atual.

(Herdado de FileSystemSecurity)
RemoveAuditRuleSpecific(AuditRule)

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

(Herdado de CommonObjectSecurity)
RemoveAuditRuleSpecific(FileSystemAuditRule)

Remove uma única regra correspondente de permitir ou negar auditoria do ficheiro ou diretório atual.

(Herdado de FileSystemSecurity)
ResetAccessRule(AccessRule)

Remove todas as regras de acesso na Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto CommonObjectSecurity e depois adiciona a regra de acesso especificada.

(Herdado de CommonObjectSecurity)
ResetAccessRule(FileSystemAccessRule)

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

(Herdado de FileSystemSecurity)
SetAccessRule(AccessRule)

Remove todas as regras de acesso que contenham o mesmo identificador de segurança e qualificador que a regra de acesso especificada na Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto CommonObjectSecurity e depois adiciona a regra de acesso especificada.

(Herdado de CommonObjectSecurity)
SetAccessRule(FileSystemAccessRule)

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

(Herdado de FileSystemSecurity)
SetAccessRuleProtection(Boolean, Boolean)

Define ou remove a proteção das regras de acesso associadas a este ObjectSecurity objeto. As regras de acesso protegido não podem ser modificadas por objetos-pai através da herança.

(Herdado de ObjectSecurity)
SetAuditRule(AuditRule)

Remove todas as regras de auditoria que contenham o mesmo identificador de segurança e qualificador que a regra de auditoria especificada na Lista de Controlo de Acesso do Sistema (SACL) associada a este objeto CommonObjectSecurity e depois adiciona a regra de auditoria especificada.

(Herdado de CommonObjectSecurity)
SetAuditRule(FileSystemAuditRule)

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

(Herdado de FileSystemSecurity)
SetAuditRuleProtection(Boolean, Boolean)

Define ou remove a proteção das regras de auditoria associadas a este ObjectSecurity objeto. As regras de auditoria protegidas não podem ser modificadas por objetos-pais através da herança.

(Herdado de ObjectSecurity)
SetGroup(IdentityReference)

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

(Herdado de ObjectSecurity)
SetOwner(IdentityReference)

Define o proprietário para o descritor de segurança associado a este ObjectSecurity objeto.

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

Define as secções especificadas do descritor de segurança para este ObjectSecurity objeto a partir do array especificado de valores de bytes.

(Herdado de ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[])

Define o descritor de segurança para este ObjectSecurity objeto a partir do array especificado de valores de bytes.

(Herdado de ObjectSecurity)
SetSecurityDescriptorSddlForm(String, AccessControlSections)

Define as secções especificadas do descritor de segurança para este ObjectSecurity objeto a partir da cadeia especificada da Linguagem de Definição de Descritores de Segurança (SDDL).

(Herdado de ObjectSecurity)
SetSecurityDescriptorSddlForm(String)

Define o descritor de segurança para este ObjectSecurity objeto a partir da cadeia especificada da Linguagem de Definição de Descritores de Segurança (SDDL).

(Herdado de ObjectSecurity)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)
WriteLock()

Bloqueia este ObjectSecurity objeto para acesso de escrita.

(Herdado de ObjectSecurity)
WriteUnlock()

Desbloqueia este ObjectSecurity objeto para acesso por escrita.

(Herdado de ObjectSecurity)

Aplica-se a