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 namespace System;
using namespace System::IO;
using namespace System::Security::AccessControl;

// Adds an ACL entry on the specified file for the specified account.

void AddFileSecurity(String^ fileName, String^ account, 
                        FileSystemRights rights, AccessControlType controlType)
{
    // Get a FileSecurity object that represents the 
    // current security settings.
    FileSecurity^ fSecurity = File::GetAccessControl(fileName);

    // Add the FileSystemAccessRule to the security settings. 
    fSecurity->AddAccessRule(gcnew FileSystemAccessRule
                                   (account,rights, controlType));

    // Set the new access settings.
    File::SetAccessControl(fileName, fSecurity);
}

// Removes an ACL entry on the specified file for the specified account.

void RemoveFileSecurity(String^ fileName, String^ account, 
                        FileSystemRights rights, AccessControlType controlType)
{

    // Get a FileSecurity object that represents the 
    // current security settings.
    FileSecurity^ fSecurity = File::GetAccessControl(fileName);

    // Remove the FileSystemAccessRule from the security settings. 
    fSecurity->RemoveAccessRule(gcnew FileSystemAccessRule
                                      (account,rights, controlType));

    // Set the new access settings.
    File::SetAccessControl(fileName, fSecurity);
}

int main()
{
    try
    {
        String^ fileName = "test.xml";

        Console::WriteLine("Adding access control entry for " + fileName);

        // Add the access control entry to the file.
        AddFileSecurity(fileName, "MYDOMAIN\\MyAccount", 
            FileSystemRights::ReadData, AccessControlType::Allow);

        Console::WriteLine("Removing access control entry from " + fileName);

        // Remove the access control entry from the file.
        RemoveFileSecurity(fileName, "MYDOMAIN\\MyAccount", 
            FileSystemRights::ReadData, AccessControlType::Allow);

        Console::WriteLine("Done.");
    }
    catch (Exception^ ex)
    {
        Console::WriteLine(ex->Message);
    }
}
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)
        {

            // Get a FileSecurity object that represents the
            // current security settings.
            FileSecurity fSecurity = File.GetAccessControl(fileName);

            // Add the FileSystemAccessRule to the security settings.
            fSecurity.AddAccessRule(new FileSystemAccessRule(account,
                rights, controlType));

            // Set the new access settings.
            File.SetAccessControl(fileName, 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)
        {

            // Get a FileSecurity object that represents the
            // current security settings.
            FileSecurity fSecurity = File.GetAccessControl(fileName);

            // Remove the FileSystemAccessRule from the security settings.
            fSecurity.RemoveAccessRule(new FileSystemAccessRule(account,
                rights, controlType));

            // Set the new access settings.
            File.SetAccessControl(fileName, 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)
  
        ' Get a FileSecurity object that represents the 
        ' current security settings.
        Dim fSecurity As FileSecurity = File.GetAccessControl(fileName)

        ' Add the FileSystemAccessRule to the security settings. 
        Dim accessRule As FileSystemAccessRule = _
            New FileSystemAccessRule(account, rights, controlType)

        fSecurity.AddAccessRule(accessRule)

        ' Set the new access settings.
        File.SetAccessControl(fileName, 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)

        ' Get a FileSecurity object that represents the 
        ' current security settings.
        Dim fSecurity As FileSecurity = File.GetAccessControl(fileName)

        ' Remove the FileSystemAccessRule from the security settings. 
        fSecurity.RemoveAccessRule(New FileSystemAccessRule(account, _
            rights, controlType))

        ' Set the new access settings.
        File.SetAccessControl(fileName, fSecurity)

    End Sub
End Module

Комментарии

Класс FileSystemSecurity является базовым классом FileSecurity для классов и DirectorySecurity . Эти классы представляют все права доступа для системного файла или каталога и определяют, как проверяются попытки доступа.

Класс FileSystemSecurity представляет права доступа и аудита в виде набора правил. Каждое правило доступа представлено FileSystemAccessRule объектом , а каждое правило аудита — FileSystemAuditRule объектом .

Класс FileSystemSecurity является абстракцией базовой Майкрософт файловой системы безопасности Windows. В этой системе каждый файл или каталог имеет список управления доступом на уровне пользователей (DACL), который управляет доступом к файлу или каталогу, и системный список управления доступом (SACL), в котором указываются проверяемые попытки управления доступом. FileSystemAccessRule Классы и FileSystemAuditRule являются абстракциями записей управления доступом (ACE), которые включают списки DACL и SACCl.

Класс FileSystemSecurity скрывает многие сведения о списках DACL и SACCL. Вам не нужно беспокоиться о порядке ACE или null DACLS.

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

Чтобы получить сведения об списке управления доступом из файла, используйте GetAccessControl метод или GetAccessControl . Чтобы получить сведения об ACL из каталога, используйте GetAccessControl метод или 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)

Добавляет указанное правило доступа в список управления доступом на уровне пользователей, связанный с данным объектом CommonObjectSecurity.

(Унаследовано от CommonObjectSecurity)
AddAccessRule(FileSystemAccessRule)

Добавляет указанное разрешение списка управления доступом к текущему файлу или каталогу.

AddAuditRule(AuditRule)

Добавляет указанное правило аудита в системный список управления доступом, связанный с данным объектом 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)

Удаляет правила доступа с тем же идентификатором безопасности и маской доступа, что и у указанного правила доступа, из списка управления доступом на уровне пользователей, связанного с текущим объектом CommonObjectSecurity.

(Унаследовано от CommonObjectSecurity)
RemoveAccessRule(FileSystemAccessRule)

Удаляет все подходящие разрешения и запреты списка управления доступом из текущего файла или каталога.

RemoveAccessRuleAll(AccessRule)

Удаляет все правила доступа с тем же идентификатором безопасности, что и у указанного правила доступа, из списка управления доступом на уровне пользователей, связанного с текущим объектом CommonObjectSecurity.

(Унаследовано от CommonObjectSecurity)
RemoveAccessRuleAll(FileSystemAccessRule)

Удаляет все разрешения списка управления доступом для указанного пользователя из текущего файла или каталога.

RemoveAccessRuleSpecific(AccessRule)

Удаляет все правила доступа, в точности совпадающие с указанным правилом доступа, из списка управления доступом на уровне пользователей, связанного с текущим объектом CommonObjectSecurity.

(Унаследовано от CommonObjectSecurity)
RemoveAccessRuleSpecific(FileSystemAccessRule)

Удаляет одно подходящее разрешение или один запрет списка управления доступом из текущего файла или каталога.

RemoveAuditRule(AuditRule)

Удаляет правила аудита с тем же идентификатором безопасности и маской доступа, что и у указанного правила аудита, из системного списка управления доступом, связанного с текущим объектом CommonObjectSecurity.

(Унаследовано от CommonObjectSecurity)
RemoveAuditRule(FileSystemAuditRule)

Удаляет все подходящие разрешающие или запрещающие правила аудита из текущего файла или каталога.

RemoveAuditRuleAll(AuditRule)

Удаляет все правила аудита с тем же идентификатором безопасности, что и у указанного правила аудита, из системного списка управления доступом, связанного с текущим объектом CommonObjectSecurity.

(Унаследовано от CommonObjectSecurity)
RemoveAuditRuleAll(FileSystemAuditRule)

Удаляет все правила аудита для указанного пользователя из текущего файла или каталога.

RemoveAuditRuleSpecific(AuditRule)

Удаляет все правила аудита, в точности совпадающие с указанным правилом аудита, из системного списка управления доступом, связанного с текущим объектом CommonObjectSecurity.

(Унаследовано от CommonObjectSecurity)
RemoveAuditRuleSpecific(FileSystemAuditRule)

Удаляет одно подходящее разрешающее или запрещающее правило аудита из текущего файла или каталога.

ResetAccessRule(AccessRule)

Удаляет все правила доступа из списка управления доступом на уровне пользователей (DACL), связанного с текущим объектом CommonObjectSecurity, а затем добавляет указанное правило доступа.

(Унаследовано от CommonObjectSecurity)
ResetAccessRule(FileSystemAccessRule)

Добавляет указанное разрешение списка управления доступом к текущему файлу или каталогу и удаляет все совпадающие разрешения списка управления доступом.

SetAccessRule(AccessRule)

Удаляет все правила доступа с тем же идентификатором и квалификатором безопасности, что и у указанного правила доступа, из списка управления доступом на уровне пользователей, связанного с текущим объектом CommonObjectSecurity, а затем добавляет указанное правило доступа.

(Унаследовано от CommonObjectSecurity)
SetAccessRule(FileSystemAccessRule)

Устанавливает указанное разрешение списка управления доступом для текущего файла или каталога.

SetAccessRuleProtection(Boolean, Boolean)

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

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

Удаляет все правила аудита с тем же идентификатором и квалификатором безопасности, что и у указанного правила аудита, из системного списка управления доступом, связанного с текущим объектом 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)

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