DirectorySecurity Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa o controle de acesso e a auditoria de segurança para um diretório. Essa classe não pode ser herdada.
public ref class DirectorySecurity sealed : System::Security::AccessControl::FileSystemSecurity
public sealed class DirectorySecurity : System.Security.AccessControl.FileSystemSecurity
[System.Security.SecurityCritical]
public sealed class DirectorySecurity : System.Security.AccessControl.FileSystemSecurity
type DirectorySecurity = class
inherit FileSystemSecurity
[<System.Security.SecurityCritical>]
type DirectorySecurity = class
inherit FileSystemSecurity
Public NotInheritable Class DirectorySecurity
Inherits FileSystemSecurity
- Herança
-
DirectorySecurity
- Atributos
Exemplos
O exemplo de código a seguir usa a DirectorySecurity classe para adicionar e, em seguida, remover uma entrada acl (lista de controle de acesso) de um diretório. 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 directory for the
// specified account.
void AddDirectorySecurity(String^ directoryName, String^ account,
FileSystemRights rights, AccessControlType controlType)
{
// Create a new DirectoryInfo object.
DirectoryInfo^ dInfo = gcnew DirectoryInfo(directoryName);
// Get a DirectorySecurity object that represents the
// current security settings.
DirectorySecurity^ dSecurity = dInfo->GetAccessControl();
// Add the FileSystemAccessRule to the security settings.
dSecurity->AddAccessRule( gcnew FileSystemAccessRule(account,
rights, controlType));
// Set the new access settings.
dInfo->SetAccessControl(dSecurity);
}
// Removes an ACL entry on the specified directory for the
// specified account.
void RemoveDirectorySecurity(String^ directoryName, String^ account,
FileSystemRights rights, AccessControlType controlType)
{
// Create a new DirectoryInfo object.
DirectoryInfo^ dInfo = gcnew DirectoryInfo(directoryName);
// Get a DirectorySecurity object that represents the
// current security settings.
DirectorySecurity^ dSecurity = dInfo->GetAccessControl();
// Add the FileSystemAccessRule to the security settings.
dSecurity->RemoveAccessRule(gcnew FileSystemAccessRule(account,
rights, controlType));
// Set the new access settings.
dInfo->SetAccessControl(dSecurity);
}
int main()
{
String^ directoryName = "TestDirectory";
String^ accountName = "MYDOMAIN\\MyAccount";
if (!Directory::Exists(directoryName))
{
Console::WriteLine("The directory {0} could not be found.",
directoryName);
return 0;
}
try
{
Console::WriteLine("Adding access control entry for {0}",
directoryName);
// Add the access control entry to the directory.
AddDirectorySecurity(directoryName, accountName,
FileSystemRights::ReadData, AccessControlType::Allow);
Console::WriteLine("Removing access control entry from {0}",
directoryName);
// Remove the access control entry from the directory.
RemoveDirectorySecurity(directoryName, accountName,
FileSystemRights::ReadData, AccessControlType::Allow);
Console::WriteLine("Done.");
}
catch (UnauthorizedAccessException^)
{
Console::WriteLine("You are not authorised to carry" +
" out this procedure.");
}
catch (System::Security::Principal::
IdentityNotMappedException^)
{
Console::WriteLine("The account {0} could not be found.", accountName);
}
}
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
Comentários
A DirectorySecurity classe especifica os direitos de acesso para um diretório do sistema e como as tentativas de acesso são auditadas. Essa 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 DirectorySecurity classe é uma abstração do sistema de segurança de arquivos subjacente do Windows. Nesse sistema, cada diretório tem uma DACL (lista de controle de acesso discricionário), que controla o acesso ao 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 FileSystemAuditRule são abstrações das ACEs (entradas de controle de acesso) que compõem DACLs e SACLs.
A DirectorySecurity classe oculta muitos dos detalhes de DACLs e SACLs; você não precisa se preocupar com a ordenação ace ou DACLS nulo.
Use a FileSecurity classe para recuperar, adicionar ou alterar as regras de acesso que representam o DACL e o SACL de um arquivo.
As tabelas a seguir listam os métodos que você pode usar para acessar e manter a segurança do diretório.
Tarefa | Métodos |
---|---|
Adicionar regras | FileSystemSecurity.AddAccessRule FileSystemSecurity.AddAuditRule |
Remover regras | FileSystemSecurity.RemoveAccessRule FileSystemSecurity.RemoveAuditRule |
Recuperar o controle de acesso para um diretório | FileSystemAclExtensions.GetAccessControl(DirectoryInfo) DirectoryInfo.GetAccessControl |
Persistir o controle de acesso a um diretório | FileSystemAclExtensions.SetAccessControl(DirectoryInfo, DirectorySecurity) DirectoryInfo.SetAccessControl |
Construtores
DirectorySecurity() |
Inicializa uma nova instância da classe DirectorySecurity. |
DirectorySecurity(String, AccessControlSections) |
Inicializa uma nova instância da classe DirectorySecurity de um diretório 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 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. (Herdado de FileSystemSecurity) |
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. (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 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. (Herdado de FileSystemSecurity) |
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. (Herdado de FileSystemSecurity) |
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. (Herdado de FileSystemSecurity) |
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. (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 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 |
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 |
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 |
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 |
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 |
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. (Herdado de FileSystemSecurity) |
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. (Herdado de FileSystemSecurity) |
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). (Herdado de FileSystemSecurity) |
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. (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 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. (Herdado de FileSystemSecurity) |
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. (Herdado de FileSystemSecurity) |
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. (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, 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. (Herdado de FileSystemSecurity) |
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. (Herdado de FileSystemSecurity) |
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) |
Métodos de Extensão
CreateDirectory(DirectorySecurity, String) |
Cria um diretório e o retorna, garantindo que ele seja criado com a segurança de diretório especificada. Se o diretório já existir, ele será retornado. |