Поделиться через


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
Наследование
Производный
Атрибуты

Примеры

В следующем примере кода для добавления и удаления записи списка управления доступом (ACL) из файла используется класс FileSecurity. Чтобы запустить этот пример, необходимо указать допустимую учетную запись пользователя или группы.

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 и SACCl.

Класс FileSystemSecurity скрывает множество сведений о DACLs и SACLs; Вам не нужно беспокоиться о упорядочении ACE или null DACLS.

Используйте следующие методы, зависящие от реализации .NET, для добавления или извлечения сведений ACL из файла:

Реализация .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, в постоянное хранилище. Рекомендуется, чтобы значения параметров includeSections, передаваемых конструктору, и методы сохранялись идентичны.

(Унаследовано от ObjectSecurity)
Persist(SafeHandle, AccessControlSections)

Сохраняет указанные разделы дескриптора безопасности, связанного с этим объектом NativeObjectSecurity, в постоянное хранилище. Рекомендуется.сохранить значения параметров includeSections, передаваемых конструктору, и методы сохранения идентичны.

(Унаследовано от NativeObjectSecurity)
Persist(SafeHandle, AccessControlSections, Object)

Сохраняет указанные разделы дескриптора безопасности, связанного с этим объектом NativeObjectSecurity, в постоянное хранилище. Рекомендуется, чтобы значения параметров includeSections, передаваемых конструктору, и методы сохранялись идентичны.

(Унаследовано от NativeObjectSecurity)
Persist(String, AccessControlSections)

Сохраняет указанные разделы дескриптора безопасности, связанного с этим объектом NativeObjectSecurity, в постоянное хранилище. Рекомендуется, чтобы значения параметров includeSections, передаваемых конструктору, и методы сохранялись идентичны.

(Унаследовано от NativeObjectSecurity)
Persist(String, AccessControlSections, Object)

Сохраняет указанные разделы дескриптора безопасности, связанного с этим объектом NativeObjectSecurity, в постоянное хранилище. Рекомендуется, чтобы значения параметров includeSections, передаваемых конструктору, и методы сохранялись идентичны.

(Унаследовано от 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[])

Задает дескриптор безопасности для этого объекта ObjectSecurity из указанного массива байтовых значений.

(Унаследовано от ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[], AccessControlSections)

Задает указанные разделы дескриптора безопасности для этого объекта ObjectSecurity из указанного массива байтовых значений.

(Унаследовано от ObjectSecurity)
SetSecurityDescriptorSddlForm(String)

Задает дескриптор безопасности для этого объекта ObjectSecurity из указанной строки языка определения дескриптора безопасности (SDDL).

(Унаследовано от ObjectSecurity)
SetSecurityDescriptorSddlForm(String, AccessControlSections)

Задает указанные разделы дескриптора безопасности для этого объекта ObjectSecurity из указанной строки языка определения дескриптора безопасности (SDDL).

(Унаследовано от ObjectSecurity)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
WriteLock()

Блокирует этот объект ObjectSecurity для доступа на запись.

(Унаследовано от ObjectSecurity)
WriteUnlock()

Разблокирует этот объект ObjectSecurity для доступа на запись.

(Унаследовано от ObjectSecurity)

Применяется к