FileSystemSecurity Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет безопасность управления доступом и аудита для файла или каталога.
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
- Наследование
- Производный
- Атрибуты
Примеры
В следующем примере кода класс используется FileSecurity для добавления и удаления записи списка управления доступом (ACL) из файла. Чтобы запустить этот пример, необходимо указать допустимую учетную запись пользователя или группы.
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
Комментарии
Класс FileSystemSecurity является базовым классом для FileSecurity и DirectorySecurity классов. Эти классы представляют все права доступа для системного файла или каталога и определяют способ аудита попыток доступа.
Класс FileSystemSecurity представляет права доступа и аудита в виде набора правил. Каждое правило доступа представлено FileSystemAccessRule объектом, а каждое правило аудита представлено FileSystemAuditRule объектом.
Класс FileSystemSecurity является абстракцией базовой Microsoft Windows файловой системы безопасности. В этой системе каждый файл или каталог имеет дискреционный список управления доступом (DACL), который управляет доступом к файлу или каталогу и списку управления доступом системы (SACL), который указывает попытки контроля доступа, которые проверяются. FileSystemAccessRule И FileSystemAuditRule классы являются абстракциями записей управления доступом (ACEs), составляющих списки DACLs и SACLs.
Класс FileSystemSecurity скрывает множество сведений о списках DACLs и SACLs. Вам не нужно беспокоиться о упорядочении ACE или null DACLS.
Используйте следующие .NET методы, зависящие от реализации, для добавления или получения сведений ACL из файла:
| реализация .NET | Добавление правил | Получение правил |
|---|---|---|
| .NET | FileSystemAclExtensions.SetAccessControl(FileInfo, FileSecurity) | FileSystemAclExtensions.GetAccessControl(FileInfo) |
| .NET Framework | FileInfo.SetAccessControl(FileSecurity) | FileInfo.GetAccessControl() |
Свойства
| Имя | Описание |
|---|---|
| AccessRightType |
Возвращает перечисление, которое FileSystemSecurity класс использует для представления прав доступа. |
| AccessRulesModified |
Возвращает или задает логическое значение, указывающее, были ли изменены правила доступа, связанные с этим ObjectSecurity объектом. (Унаследовано от ObjectSecurity) |
| AccessRuleType |
Возвращает перечисление, которое FileSystemSecurity класс использует для представления правил доступа. |
| AreAccessRulesCanonical |
Возвращает логическое значение, указывающее, находятся ли правила доступа, связанные с этим ObjectSecurity объектом, в каноническом порядке. (Унаследовано от ObjectSecurity) |
| AreAccessRulesProtected |
Возвращает логическое значение, указывающее, защищен ли список управления доступом (DACL), связанный с этим ObjectSecurity объектом. (Унаследовано от ObjectSecurity) |
| AreAuditRulesCanonical |
Возвращает логическое значение, указывающее, находятся ли правила аудита, связанные с этим ObjectSecurity объектом, в каноническом порядке. (Унаследовано от ObjectSecurity) |
| AreAuditRulesProtected |
Возвращает логическое значение, указывающее, защищен ли список управления доступом системы (SACL), связанный с этим ObjectSecurity объектом. (Унаследовано от ObjectSecurity) |
| AuditRulesModified |
Возвращает или задает логическое значение, указывающее, были ли изменены правила аудита, связанные с этим ObjectSecurity объектом. (Унаследовано от ObjectSecurity) |
| AuditRuleType |
Возвращает тип, который FileSystemSecurity класс использует для представления правил аудита. |
| GroupModified |
Возвращает или задает логическое значение, указывающее, была ли изменена группа, связанная с защищаемым объектом. (Унаследовано от ObjectSecurity) |
| IsContainer |
Возвращает логическое значение, указывающее, является ли этот ObjectSecurity объект объектом контейнера. (Унаследовано от ObjectSecurity) |
| IsDS |
Возвращает логическое значение, указывающее, является ли этот ObjectSecurity объект объектом каталога. (Унаследовано от ObjectSecurity) |
| OwnerModified |
Возвращает или задает логическое значение, указывающее, был ли изменен владелец защищаемого объекта. (Унаследовано от ObjectSecurity) |
| SecurityDescriptor |
Возвращает дескриптор безопасности для этого экземпляра. (Унаследовано от ObjectSecurity) |
Методы
| Имя | Описание |
|---|---|
| AccessRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AccessControlType) |
Инициализирует новый экземпляр класса, представляющий новое правило управления доступом для указанного FileSystemAccessRule пользователя с указанными правами доступа, контролем доступа и флагами. |
| AddAccessRule(AccessRule) |
Добавляет указанное правило доступа в список управления доступом (DACL), связанный с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| AddAccessRule(FileSystemAccessRule) |
Добавляет указанное разрешение списка управления доступом (ACL) в текущий файл или каталог. |
| AddAuditRule(AuditRule) |
Добавляет указанное правило аудита в список управления доступом системы (SACL), связанный с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| AddAuditRule(FileSystemAuditRule) |
Добавляет указанное правило аудита в текущий файл или каталог. |
| AuditRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AuditFlags) |
Инициализирует новый экземпляр FileSystemAuditRule класса, представляющий указанное правило аудита для указанного пользователя. |
| 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) из текущего файла или каталога. |
| RemoveAccessRuleAll(AccessRule) |
Удаляет все правила доступа, имеющие тот же идентификатор безопасности, что и указанное правило доступа из списка управления доступом (DACL), связанного с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| RemoveAccessRuleAll(FileSystemAccessRule) |
Удаляет все разрешения списка управления доступом (ACL) для указанного пользователя из текущего файла или каталога. |
| RemoveAccessRuleSpecific(AccessRule) |
Удаляет все правила доступа, которые точно соответствуют указанному правилу доступа из списка управления доступом (DACL), связанного с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| RemoveAccessRuleSpecific(FileSystemAccessRule) |
Удаляет одно соответствующее разрешение на доступ к списку управления доступом (ACL) из текущего файла или каталога. |
| RemoveAuditRule(AuditRule) |
Удаляет правила аудита, содержащие тот же идентификатор безопасности и маску доступа, что и указанное правило аудита из списка управления доступом системы (SACL), связанного с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| RemoveAuditRule(FileSystemAuditRule) |
Удаляет все соответствующие правила разрешения или запретить аудит из текущего файла или каталога. |
| RemoveAuditRuleAll(AuditRule) |
Удаляет все правила аудита, имеющие тот же идентификатор безопасности, что и указанное правило аудита из списка управления доступом системы (SACL), связанного с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| RemoveAuditRuleAll(FileSystemAuditRule) |
Удаляет все правила аудита для указанного пользователя из текущего файла или каталога. |
| RemoveAuditRuleSpecific(AuditRule) |
Удаляет все правила аудита, которые точно соответствуют указанному правилу аудита из списка управления доступом системы (SACL), связанного с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| RemoveAuditRuleSpecific(FileSystemAuditRule) |
Удаляет одно соответствующее правило разрешения или запретить аудит из текущего файла или каталога. |
| ResetAccessRule(AccessRule) |
Удаляет все правила доступа в списке управления доступом(DACL), связанном с этим CommonObjectSecurity объектом, а затем добавляет указанное правило доступа. (Унаследовано от CommonObjectSecurity) |
| ResetAccessRule(FileSystemAccessRule) |
Добавляет указанное разрешение списка управления доступом (ACL) в текущий файл или каталог и удаляет все соответствующие разрешения ACL. |
| SetAccessRule(AccessRule) |
Удаляет все правила доступа, содержащие тот же идентификатор безопасности и квалификатор, что и указанное правило доступа в списке управления доступом (DACL), связанном с этим CommonObjectSecurity объектом, а затем добавляет указанное правило доступа. (Унаследовано от CommonObjectSecurity) |
| SetAccessRule(FileSystemAccessRule) |
Задает указанное разрешение списка управления доступом (ACL) для текущего файла или каталога. |
| SetAccessRuleProtection(Boolean, Boolean) |
Задает или удаляет защиту правил доступа, связанных с этим ObjectSecurity объектом. Правила защищенного доступа нельзя изменить родительскими объектами с помощью наследования. (Унаследовано от ObjectSecurity) |
| SetAuditRule(AuditRule) |
Удаляет все правила аудита, содержащие тот же идентификатор безопасности и квалификатор, что и указанное правило аудита в списке управления доступом системы (SACL), связанном с этим CommonObjectSecurity объектом, а затем добавляет указанное правило аудита. (Унаследовано от CommonObjectSecurity) |
| SetAuditRule(FileSystemAuditRule) |
Задает указанное правило аудита для текущего файла или каталога. |
| 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) |