DirectorySecurity Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет безопасность управления доступом и аудита для каталога. Этот класс не наследуется.
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
- Наследование
-
DirectorySecurity
- Атрибуты
Примеры
В следующем примере кода класс используется DirectorySecurity для добавления и удаления записи списка управления доступом (ACL) из каталога. Чтобы запустить этот пример, необходимо указать допустимую учетную запись пользователя или группы.
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
Комментарии
Класс DirectorySecurity указывает права доступа для системного каталога и способ аудита попыток доступа. Этот класс представляет права доступа и аудита в виде набора правил. Каждое правило доступа представлено FileSystemAccessRule объектом, а каждое правило аудита представлено FileSystemAuditRule объектом.
Класс DirectorySecurity является абстракцией базовой системы безопасности файлов Windows. В этой системе каждый каталог имеет список управления доступом (DACL), который управляет доступом к каталогу и списком управления доступом системы (SACL), который указывает попытки контроля доступа, которые проверяются. FileSystemAccessRule Классы FileSystemAuditRule являются абстракциями записей управления доступом (ACEs), составляющих списки DACLs и списки SACCl.
Класс DirectorySecurity скрывает множество сведений о списках DACLs и SACLs. Вам не нужно беспокоиться о упорядочении ACE или null DACLS.
FileSecurity Используйте класс для получения, добавления или изменения правил доступа, представляющих DACL и SACL файла.
В следующих таблицах перечислены методы, которые можно использовать для доступа к безопасности каталогов и поддержания их.
| задачи | Методы |
|---|---|
| Добавление правил | FileSystemSecurity.AddAccessRule FileSystemSecurity.AddAuditRule |
| Удаление правил | FileSystemSecurity.RemoveAccessRule FileSystemSecurity.RemoveAuditRule |
| Получение управления доступом к каталогу | FileSystemAclExtensions.GetAccessControl(DirectoryInfo) DirectoryInfo.GetAccessControl |
| Сохранение управления доступом в каталог | FileSystemAclExtensions.SetAccessControl(DirectoryInfo, DirectorySecurity) DirectoryInfo.SetAccessControl |
Конструкторы
| Имя | Описание |
|---|---|
| DirectorySecurity() |
Инициализирует новый экземпляр класса DirectorySecurity. |
| DirectorySecurity(String, AccessControlSections) |
Инициализирует новый экземпляр DirectorySecurity класса из указанного каталога с помощью указанных значений AccessControlSections перечисления. |
Свойства
| Имя | Описание |
|---|---|
| AccessRightType |
Возвращает перечисление, которое FileSystemSecurity класс использует для представления прав доступа. (Унаследовано от FileSystemSecurity) |
| AccessRulesModified |
Возвращает или задает логическое значение, указывающее, были ли изменены правила доступа, связанные с этим ObjectSecurity объектом. (Унаследовано от ObjectSecurity) |
| AccessRuleType |
Возвращает перечисление, которое FileSystemSecurity класс использует для представления правил доступа. (Унаследовано от FileSystemSecurity) |
| AreAccessRulesCanonical |
Возвращает логическое значение, указывающее, находятся ли правила доступа, связанные с этим ObjectSecurity объектом, в каноническом порядке. (Унаследовано от ObjectSecurity) |
| AreAccessRulesProtected |
Возвращает логическое значение, указывающее, защищен ли список управления доступом (DACL), связанный с этим ObjectSecurity объектом. (Унаследовано от ObjectSecurity) |
| AreAuditRulesCanonical |
Возвращает логическое значение, указывающее, находятся ли правила аудита, связанные с этим ObjectSecurity объектом, в каноническом порядке. (Унаследовано от ObjectSecurity) |
| AreAuditRulesProtected |
Возвращает логическое значение, указывающее, защищен ли список управления доступом системы (SACL), связанный с этим ObjectSecurity объектом. (Унаследовано от ObjectSecurity) |
| AuditRulesModified |
Возвращает или задает логическое значение, указывающее, были ли изменены правила аудита, связанные с этим ObjectSecurity объектом. (Унаследовано от ObjectSecurity) |
| AuditRuleType |
Возвращает тип, который FileSystemSecurity класс использует для представления правил аудита. (Унаследовано от FileSystemSecurity) |
| GroupModified |
Возвращает или задает логическое значение, указывающее, была ли изменена группа, связанная с защищаемым объектом. (Унаследовано от ObjectSecurity) |
| IsContainer |
Возвращает логическое значение, указывающее, является ли этот ObjectSecurity объект объектом контейнера. (Унаследовано от ObjectSecurity) |
| IsDS |
Возвращает логическое значение, указывающее, является ли этот ObjectSecurity объект объектом каталога. (Унаследовано от ObjectSecurity) |
| OwnerModified |
Возвращает или задает логическое значение, указывающее, был ли изменен владелец защищаемого объекта. (Унаследовано от ObjectSecurity) |
| SecurityDescriptor |
Возвращает дескриптор безопасности для этого экземпляра. (Унаследовано от ObjectSecurity) |
Методы
| Имя | Описание |
|---|---|
| AccessRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AccessControlType) |
Инициализирует новый экземпляр класса, представляющий новое правило управления доступом для указанного FileSystemAccessRule пользователя с указанными правами доступа, контролем доступа и флагами. (Унаследовано от FileSystemSecurity) |
| AddAccessRule(AccessRule) |
Добавляет указанное правило доступа в список управления доступом (DACL), связанный с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| AddAccessRule(FileSystemAccessRule) |
Добавляет указанное разрешение списка управления доступом (ACL) в текущий файл или каталог. (Унаследовано от FileSystemSecurity) |
| AddAuditRule(AuditRule) |
Добавляет указанное правило аудита в список управления доступом системы (SACL), связанный с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| AddAuditRule(FileSystemAuditRule) |
Добавляет указанное правило аудита в текущий файл или каталог. (Унаследовано от FileSystemSecurity) |
| AuditRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AuditFlags) |
Инициализирует новый экземпляр FileSystemAuditRule класса, представляющий указанное правило аудита для указанного пользователя. (Унаследовано от FileSystemSecurity) |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetAccessRules(Boolean, Boolean, Type) |
Возвращает коллекцию правил доступа, связанных с указанным идентификатором безопасности. (Унаследовано от CommonObjectSecurity) |
| GetAuditRules(Boolean, Boolean, Type) |
Возвращает коллекцию правил аудита, связанных с указанным идентификатором безопасности. (Унаследовано от CommonObjectSecurity) |
| GetGroup(Type) |
Возвращает основную группу, связанную с указанным владельцем. (Унаследовано от ObjectSecurity) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetOwner(Type) |
Возвращает владельца, связанного с указанной основной группой. (Унаследовано от ObjectSecurity) |
| GetSecurityDescriptorBinaryForm() |
Возвращает массив байтовых значений, представляющий сведения о дескрипторе безопасности для этого ObjectSecurity объекта. (Унаследовано от ObjectSecurity) |
| GetSecurityDescriptorSddlForm(AccessControlSections) |
Возвращает представление языка определения дескриптора безопасности (SDDL) указанных разделов дескриптора безопасности, связанного с этим ObjectSecurity объектом. (Унаследовано от ObjectSecurity) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ModifyAccess(AccessControlModification, AccessRule, Boolean) |
Применяет указанное изменение к списку управления доступом(DACL), связанному с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| ModifyAccessRule(AccessControlModification, AccessRule, Boolean) |
Применяет указанное изменение к списку управления доступом(DACL), связанному с этим ObjectSecurity объектом. (Унаследовано от ObjectSecurity) |
| ModifyAudit(AccessControlModification, AuditRule, Boolean) |
Применяет указанное изменение к списку управления доступом системы (SACL), связанному с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| ModifyAuditRule(AccessControlModification, AuditRule, Boolean) |
Применяет указанное изменение к списку управления доступом системы (SACL), связанному с этим ObjectSecurity объектом. (Унаследовано от ObjectSecurity) |
| Persist(Boolean, String, AccessControlSections) |
Сохраняет указанные разделы дескриптора безопасности, связанного с этим ObjectSecurity объектом, в постоянное хранилище. Рекомендуется, чтобы значения параметров, |
| Persist(SafeHandle, AccessControlSections, Object) |
Сохраняет указанные разделы дескриптора безопасности, связанного с этим NativeObjectSecurity объектом, в постоянное хранилище. Рекомендуется, чтобы значения параметров, |
| Persist(SafeHandle, AccessControlSections) |
Сохраняет указанные разделы дескриптора безопасности, связанного с этим NativeObjectSecurity объектом, в постоянное хранилище. Рекомендуется.сохранить значения параметров, переданных |
| Persist(String, AccessControlSections, Object) |
Сохраняет указанные разделы дескриптора безопасности, связанного с этим NativeObjectSecurity объектом, в постоянное хранилище. Рекомендуется, чтобы значения параметров, |
| Persist(String, AccessControlSections) |
Сохраняет указанные разделы дескриптора безопасности, связанного с этим NativeObjectSecurity объектом, в постоянное хранилище. Рекомендуется, чтобы значения параметров, |
| PurgeAccessRules(IdentityReference) |
Удаляет все правила доступа, связанные с указанным IdentityReference. (Унаследовано от ObjectSecurity) |
| PurgeAuditRules(IdentityReference) |
Удаляет все правила аудита, связанные с указанным IdentityReference. (Унаследовано от ObjectSecurity) |
| ReadLock() |
Блокирует этот ObjectSecurity объект для доступа на чтение. (Унаследовано от ObjectSecurity) |
| ReadUnlock() |
Разблокирует этот ObjectSecurity объект для доступа на чтение. (Унаследовано от ObjectSecurity) |
| RemoveAccessRule(AccessRule) |
Удаляет правила доступа, содержащие тот же идентификатор безопасности и маску доступа, что и указанное правило доступа из списка управления доступом (DACL), связанного с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| RemoveAccessRule(FileSystemAccessRule) |
Удаляет все соответствующие разрешения списка управления доступом (ACL) из текущего файла или каталога. (Унаследовано от FileSystemSecurity) |
| RemoveAccessRuleAll(AccessRule) |
Удаляет все правила доступа, имеющие тот же идентификатор безопасности, что и указанное правило доступа из списка управления доступом (DACL), связанного с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| RemoveAccessRuleAll(FileSystemAccessRule) |
Удаляет все разрешения списка управления доступом (ACL) для указанного пользователя из текущего файла или каталога. (Унаследовано от FileSystemSecurity) |
| RemoveAccessRuleSpecific(AccessRule) |
Удаляет все правила доступа, которые точно соответствуют указанному правилу доступа из списка управления доступом (DACL), связанного с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| RemoveAccessRuleSpecific(FileSystemAccessRule) |
Удаляет одно соответствующее разрешение на доступ к списку управления доступом (ACL) из текущего файла или каталога. (Унаследовано от FileSystemSecurity) |
| RemoveAuditRule(AuditRule) |
Удаляет правила аудита, содержащие тот же идентификатор безопасности и маску доступа, что и указанное правило аудита из списка управления доступом системы (SACL), связанного с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| RemoveAuditRule(FileSystemAuditRule) |
Удаляет все соответствующие правила разрешения или запретить аудит из текущего файла или каталога. (Унаследовано от FileSystemSecurity) |
| RemoveAuditRuleAll(AuditRule) |
Удаляет все правила аудита, имеющие тот же идентификатор безопасности, что и указанное правило аудита из списка управления доступом системы (SACL), связанного с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| RemoveAuditRuleAll(FileSystemAuditRule) |
Удаляет все правила аудита для указанного пользователя из текущего файла или каталога. (Унаследовано от FileSystemSecurity) |
| RemoveAuditRuleSpecific(AuditRule) |
Удаляет все правила аудита, которые точно соответствуют указанному правилу аудита из списка управления доступом системы (SACL), связанного с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| RemoveAuditRuleSpecific(FileSystemAuditRule) |
Удаляет одно соответствующее правило разрешения или запретить аудит из текущего файла или каталога. (Унаследовано от FileSystemSecurity) |
| ResetAccessRule(AccessRule) |
Удаляет все правила доступа в списке управления доступом(DACL), связанном с этим CommonObjectSecurity объектом, а затем добавляет указанное правило доступа. (Унаследовано от CommonObjectSecurity) |
| ResetAccessRule(FileSystemAccessRule) |
Добавляет указанное разрешение списка управления доступом (ACL) в текущий файл или каталог и удаляет все соответствующие разрешения ACL. (Унаследовано от FileSystemSecurity) |
| SetAccessRule(AccessRule) |
Удаляет все правила доступа, содержащие тот же идентификатор безопасности и квалификатор, что и указанное правило доступа в списке управления доступом (DACL), связанном с этим CommonObjectSecurity объектом, а затем добавляет указанное правило доступа. (Унаследовано от CommonObjectSecurity) |
| SetAccessRule(FileSystemAccessRule) |
Задает указанное разрешение списка управления доступом (ACL) для текущего файла или каталога. (Унаследовано от FileSystemSecurity) |
| SetAccessRuleProtection(Boolean, Boolean) |
Задает или удаляет защиту правил доступа, связанных с этим ObjectSecurity объектом. Правила защищенного доступа нельзя изменить родительскими объектами с помощью наследования. (Унаследовано от ObjectSecurity) |
| SetAuditRule(AuditRule) |
Удаляет все правила аудита, содержащие тот же идентификатор безопасности и квалификатор, что и указанное правило аудита в списке управления доступом системы (SACL), связанном с этим CommonObjectSecurity объектом, а затем добавляет указанное правило аудита. (Унаследовано от CommonObjectSecurity) |
| SetAuditRule(FileSystemAuditRule) |
Задает указанное правило аудита для текущего файла или каталога. (Унаследовано от FileSystemSecurity) |
| SetAuditRuleProtection(Boolean, Boolean) |
Задает или удаляет защиту правил аудита, связанных с этим ObjectSecurity объектом. Защищенные правила аудита нельзя изменить родительскими объектами с помощью наследования. (Унаследовано от ObjectSecurity) |
| SetGroup(IdentityReference) |
Задает основную группу для дескриптора безопасности, связанного с этим ObjectSecurity объектом. (Унаследовано от ObjectSecurity) |
| SetOwner(IdentityReference) |
Задает владельца дескриптора безопасности, связанного с этим ObjectSecurity объектом. (Унаследовано от ObjectSecurity) |
| SetSecurityDescriptorBinaryForm(Byte[], AccessControlSections) |
Задает указанные разделы дескриптора безопасности для этого ObjectSecurity объекта из указанного массива значений байтов. (Унаследовано от ObjectSecurity) |
| SetSecurityDescriptorBinaryForm(Byte[]) |
Задает дескриптор безопасности для этого ObjectSecurity объекта из указанного массива байтовых значений. (Унаследовано от ObjectSecurity) |
| SetSecurityDescriptorSddlForm(String, AccessControlSections) |
Задает указанные разделы дескриптора безопасности для этого ObjectSecurity объекта из указанной строки языка определения дескриптора безопасности (SDDL). (Унаследовано от ObjectSecurity) |
| SetSecurityDescriptorSddlForm(String) |
Задает дескриптор безопасности для этого ObjectSecurity объекта из указанной строки языка определения дескриптора безопасности (SDDL). (Унаследовано от ObjectSecurity) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
| WriteLock() |
Блокирует этот ObjectSecurity объект для доступа на запись. (Унаследовано от ObjectSecurity) |
| WriteUnlock() |
Разблокирует этот ObjectSecurity объект для доступа на запись. (Унаследовано от ObjectSecurity) |
Методы расширения
| Имя | Описание |
|---|---|
| CreateDirectory(DirectorySecurity, String) |
Создает каталог и возвращает его, обеспечивая его создание с помощью указанной безопасности каталога. Если каталог уже существует, возвращается существующий каталог. |