FileSecurity Класс

Определение

Представляет безопасность управления доступом и аудита для файла. Этот класс не наследуется.

public ref class FileSecurity sealed : System::Security::AccessControl::FileSystemSecurity
public sealed class FileSecurity : System.Security.AccessControl.FileSystemSecurity
type FileSecurity = class
    inherit FileSystemSecurity
Public NotInheritable Class FileSecurity
Inherits FileSystemSecurity
Наследование

Примеры

В следующем примере кода класс используется 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

Комментарии

Класс FileSecurity задает права доступа для системного файла и способ аудита попыток доступа. Этот класс представляет права доступа и аудита в виде набора правил. Каждое FileSystemAccessRule правило доступа представлено объектом. Каждое FileSystemAuditRule правило аудита представлено объектом.

Класс FileSecurity является абстракцией базовой Microsoft Windows файловой системы безопасности. В этой системе каждый файл имеет список управления доступом (DACL), который управляет доступом к файлу и списком управления доступом системы (SACL), который указывает попытки контроля доступа, которые проверяются. FileSystemAuditRule Классы FileSystemAccessRule являются абстракциями записей управления доступом (ACEs), составляющих списки DACLs и списки SACCl.

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

FileSecurity Используйте класс для получения, добавления или изменения правил доступа, представляющих DACL и SACL файла.

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

реализация .NET Добавление правил Получение правил
.NET FileSystemAclExtensions.SetAccessControl(FileInfo, FileSecurity) FileSystemAclExtensions.GetAccessControl(FileInfo)
платформа .NET FileInfo.SetAccessControl(FileSecurity) FileInfo.GetAccessControl()

Конструкторы

Имя Описание
FileSecurity()

Инициализирует новый экземпляр класса FileSecurity.

FileSecurity(String, AccessControlSections)

Инициализирует новый экземпляр FileSecurity класса из указанного файла с помощью указанных значений перечисления 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)

Методы

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

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

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

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

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

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

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

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

Сохраняет указанные разделы дескриптора безопасности, связанного с этим 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) из текущего файла или каталога.

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

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