Udostępnij za pośrednictwem


FileSystemSecurity Klasa

Definicja

Reprezentuje zabezpieczenia kontroli dostępu i inspekcji dla pliku lub katalogu.

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
Dziedziczenie
Pochodne
Atrybuty

Przykłady

Poniższy przykład kodu używa klasy FileSecurity do dodania, a następnie usunięcia wpisu listy kontroli dostępu (ACL) z pliku. Aby uruchomić ten przykład, musisz podać prawidłowe konto użytkownika lub grupy.

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

Uwagi

Klasa FileSystemSecurity jest klasą bazową dla klas FileSecurity i DirectorySecurity. Te klasy reprezentują wszystkie prawa dostępu do pliku systemu lub katalogu i definiują sposób inspekcji prób dostępu.

Klasa FileSystemSecurity reprezentuje prawa dostępu i inspekcji jako zestaw reguł. Każda reguła dostępu jest reprezentowana przez obiekt FileSystemAccessRule, podczas gdy każda reguła inspekcji jest reprezentowana przez obiekt FileSystemAuditRule.

Klasa FileSystemSecurity jest abstrakcją bazowego systemu zabezpieczeń plików systemu Microsoft Windows. W tym systemie każdy plik lub katalog ma uznaniową listę kontroli dostępu (DACL), która kontroluje dostęp do pliku lub katalogu oraz systemową listę kontroli dostępu (SACL), która określa próby kontroli dostępu, które są poddawane inspekcji. Klasy FileSystemAccessRule i FileSystemAuditRule to abstrakcje wpisów kontroli dostępu (ACL), które składają się na listy KONTROLI dostępu i SACL.

Klasa FileSystemSecurity ukrywa wiele szczegółów list DACL i SACL; Nie musisz martwić się o zamawianie ACE lub null DACLS.

Użyj następujących metod zależnych od implementacji platformy .NET, aby dodać lub pobrać informacje listy ACL z pliku:

Implementacja platformy .NET Dodawanie reguł Pobieranie reguł
.SIEĆ FileSystemAclExtensions.SetAccessControl(FileInfo, FileSecurity) FileSystemAclExtensions.GetAccessControl(FileInfo)
.NET Framework FileInfo.SetAccessControl(FileSecurity) FileInfo.GetAccessControl()

Właściwości

AccessRightType

Pobiera wyliczenie używane przez klasę FileSystemSecurity do reprezentowania praw dostępu.

AccessRulesModified

Pobiera lub ustawia wartość logiczną określającą, czy reguły dostępu skojarzone z tym obiektem ObjectSecurity zostały zmodyfikowane.

(Odziedziczone po ObjectSecurity)
AccessRuleType

Pobiera wyliczenie używane przez klasę FileSystemSecurity do reprezentowania reguł dostępu.

AreAccessRulesCanonical

Pobiera wartość logiczną określającą, czy reguły dostępu skojarzone z tym obiektem ObjectSecurity są w porządku kanonicznym.

(Odziedziczone po ObjectSecurity)
AreAccessRulesProtected

Pobiera wartość logiczną określającą, czy lista kontroli dostępu uznaniowego (DACL) skojarzona z tym obiektem ObjectSecurity jest chroniona.

(Odziedziczone po ObjectSecurity)
AreAuditRulesCanonical

Pobiera wartość logiczną określającą, czy reguły inspekcji skojarzone z tym obiektem ObjectSecurity są w porządku kanonicznym.

(Odziedziczone po ObjectSecurity)
AreAuditRulesProtected

Pobiera wartość logiczną określającą, czy lista kontroli dostępu systemu (SACL) skojarzona z tym obiektem ObjectSecurity jest chroniona.

(Odziedziczone po ObjectSecurity)
AuditRulesModified

Pobiera lub ustawia wartość logiczną określającą, czy reguły inspekcji skojarzone z tym obiektem ObjectSecurity zostały zmodyfikowane.

(Odziedziczone po ObjectSecurity)
AuditRuleType

Pobiera typ używany przez klasę FileSystemSecurity do reprezentowania reguł inspekcji.

GroupModified

Pobiera lub ustawia wartość logiczną określającą, czy grupa skojarzona z zabezpieczanym obiektem została zmodyfikowana.

(Odziedziczone po ObjectSecurity)
IsContainer

Pobiera wartość logiczną określającą, czy ten obiekt ObjectSecurity jest obiektem kontenera.

(Odziedziczone po ObjectSecurity)
IsDS

Pobiera wartość logiczną określającą, czy ten obiekt ObjectSecurity jest obiektem katalogu.

(Odziedziczone po ObjectSecurity)
OwnerModified

Pobiera lub ustawia wartość logiczną określającą, czy właściciel zabezpieczanego obiektu został zmodyfikowany.

(Odziedziczone po ObjectSecurity)
SecurityDescriptor

Pobiera deskryptor zabezpieczeń dla tego wystąpienia.

(Odziedziczone po ObjectSecurity)

Metody

AccessRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AccessControlType)

Inicjuje nowe wystąpienie klasy FileSystemAccessRule, która reprezentuje nową regułę kontroli dostępu dla określonego użytkownika z określonymi prawami dostępu, kontrolą dostępu i flagami.

AddAccessRule(AccessRule)

Dodaje określoną regułę dostępu do listy kontroli dostępu uznaniowej skojarzonej z tym obiektem CommonObjectSecurity.

(Odziedziczone po CommonObjectSecurity)
AddAccessRule(FileSystemAccessRule)

Dodaje określone uprawnienie listy kontroli dostępu (ACL) do bieżącego pliku lub katalogu.

AddAuditRule(AuditRule)

Dodaje określoną regułę inspekcji do listy kontroli dostępu systemu (SACL) skojarzonej z tym obiektem CommonObjectSecurity.

(Odziedziczone po CommonObjectSecurity)
AddAuditRule(FileSystemAuditRule)

Dodaje określoną regułę inspekcji do bieżącego pliku lub katalogu.

AuditRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AuditFlags)

Inicjuje nowe wystąpienie klasy FileSystemAuditRule reprezentującej określoną regułę inspekcji dla określonego użytkownika.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.

(Odziedziczone po Object)
GetAccessRules(Boolean, Boolean, Type)

Pobiera kolekcję reguł dostępu skojarzonych z określonym identyfikatorem zabezpieczeń.

(Odziedziczone po CommonObjectSecurity)
GetAuditRules(Boolean, Boolean, Type)

Pobiera kolekcję reguł inspekcji skojarzonych z określonym identyfikatorem zabezpieczeń.

(Odziedziczone po CommonObjectSecurity)
GetGroup(Type)

Pobiera grupę podstawową skojarzona z określonym właścicielem.

(Odziedziczone po ObjectSecurity)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetOwner(Type)

Pobiera właściciela skojarzonego z określoną grupą podstawową.

(Odziedziczone po ObjectSecurity)
GetSecurityDescriptorBinaryForm()

Zwraca tablicę wartości bajtów, która reprezentuje informacje deskryptora zabezpieczeń dla tego obiektu ObjectSecurity.

(Odziedziczone po ObjectSecurity)
GetSecurityDescriptorSddlForm(AccessControlSections)

Zwraca reprezentację języka SDDL (Security Descriptor Definition Language) określonego fragmentu deskryptora zabezpieczeń skojarzonego z tym obiektem ObjectSecurity.

(Odziedziczone po ObjectSecurity)
GetType()

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Object.

(Odziedziczone po Object)
ModifyAccess(AccessControlModification, AccessRule, Boolean)

Stosuje określoną modyfikację do uznaniowej listy kontroli dostępu (DACL) skojarzonej z tym obiektem CommonObjectSecurity.

(Odziedziczone po CommonObjectSecurity)
ModifyAccessRule(AccessControlModification, AccessRule, Boolean)

Stosuje określoną modyfikację do uznaniowej listy kontroli dostępu (DACL) skojarzonej z tym obiektem ObjectSecurity.

(Odziedziczone po ObjectSecurity)
ModifyAudit(AccessControlModification, AuditRule, Boolean)

Stosuje określoną modyfikację do listy kontroli dostępu systemu (SACL) skojarzonej z tym obiektem CommonObjectSecurity.

(Odziedziczone po CommonObjectSecurity)
ModifyAuditRule(AccessControlModification, AuditRule, Boolean)

Stosuje określoną modyfikację do listy kontroli dostępu systemu (SACL) skojarzonej z tym obiektem ObjectSecurity.

(Odziedziczone po ObjectSecurity)
Persist(Boolean, String, AccessControlSections)

Zapisuje określone sekcje deskryptora zabezpieczeń skojarzonego z tym obiektem ObjectSecurity do magazynu trwałego. Zalecamy, aby wartości parametrów includeSections przekazanych do konstruktora i metody utrwalania są identyczne.

(Odziedziczone po ObjectSecurity)
Persist(SafeHandle, AccessControlSections)

Zapisuje określone sekcje deskryptora zabezpieczeń skojarzonego z tym obiektem NativeObjectSecurity do magazynu trwałego. Zalecamy.utrwalanie wartości parametrów includeSections przekazywanych do konstruktora i utrwalania metod są identyczne.

(Odziedziczone po NativeObjectSecurity)
Persist(SafeHandle, AccessControlSections, Object)

Zapisuje określone sekcje deskryptora zabezpieczeń skojarzonego z tym obiektem NativeObjectSecurity do magazynu trwałego. Zalecamy, aby wartości parametrów includeSections przekazanych do konstruktora i metody utrwalania są identyczne.

(Odziedziczone po NativeObjectSecurity)
Persist(String, AccessControlSections)

Zapisuje określone sekcje deskryptora zabezpieczeń skojarzonego z tym obiektem NativeObjectSecurity do magazynu trwałego. Zalecamy, aby wartości parametrów includeSections przekazanych do konstruktora i metody utrwalania są identyczne.

(Odziedziczone po NativeObjectSecurity)
Persist(String, AccessControlSections, Object)

Zapisuje określone sekcje deskryptora zabezpieczeń skojarzonego z tym obiektem NativeObjectSecurity do magazynu trwałego. Zalecamy, aby wartości parametrów includeSections przekazanych do konstruktora i metody utrwalania są identyczne.

(Odziedziczone po NativeObjectSecurity)
PurgeAccessRules(IdentityReference)

Usuwa wszystkie reguły dostępu skojarzone z określonym IdentityReference.

(Odziedziczone po ObjectSecurity)
PurgeAuditRules(IdentityReference)

Usuwa wszystkie reguły inspekcji skojarzone z określonym IdentityReference.

(Odziedziczone po ObjectSecurity)
ReadLock()

Blokuje ten obiekt ObjectSecurity w celu uzyskania dostępu do odczytu.

(Odziedziczone po ObjectSecurity)
ReadUnlock()

Umożliwia odblokowanie tego obiektu ObjectSecurity w celu uzyskania dostępu do odczytu.

(Odziedziczone po ObjectSecurity)
RemoveAccessRule(AccessRule)

Usuwa reguły dostępu zawierające ten sam identyfikator zabezpieczeń i maskę dostępu co określona reguła dostępu z listy kontroli dostępu dyskrecjonalnych skojarzonych z tym obiektem CommonObjectSecurity.

(Odziedziczone po CommonObjectSecurity)
RemoveAccessRule(FileSystemAccessRule)

Usuwa wszystkie pasujące uprawnienia listy kontroli dostępu (ACL) lub zezwalają na nie z bieżącego pliku lub katalogu.

RemoveAccessRuleAll(AccessRule)

Usuwa wszystkie reguły dostępu, które mają ten sam identyfikator zabezpieczeń co określona reguła dostępu z listy kontroli dostępu dyskrecjonalnych (DACL) skojarzonych z tym obiektem CommonObjectSecurity.

(Odziedziczone po CommonObjectSecurity)
RemoveAccessRuleAll(FileSystemAccessRule)

Usuwa wszystkie uprawnienia listy kontroli dostępu (ACL) dla określonego użytkownika z bieżącego pliku lub katalogu.

RemoveAccessRuleSpecific(AccessRule)

Usuwa wszystkie reguły dostępu, które dokładnie pasują do określonej reguły dostępu z listy kontroli dostępu dyskrecjonalnych (DACL) skojarzonej z tym obiektem CommonObjectSecurity.

(Odziedziczone po CommonObjectSecurity)
RemoveAccessRuleSpecific(FileSystemAccessRule)

Usuwa pojedyncze zgodne uprawnienie listy kontroli dostępu (ACL) lub zezwala na nie z bieżącego pliku lub katalogu.

RemoveAuditRule(AuditRule)

Usuwa reguły inspekcji zawierające ten sam identyfikator zabezpieczeń i maskę dostępu co określona reguła inspekcji z listy kontroli dostępu systemu (SACL) skojarzonej z tym obiektem CommonObjectSecurity.

(Odziedziczone po CommonObjectSecurity)
RemoveAuditRule(FileSystemAuditRule)

Usuwa wszystkie zgodne reguły inspekcji zezwalania lub odmowy z bieżącego pliku lub katalogu.

RemoveAuditRuleAll(AuditRule)

Usuwa wszystkie reguły inspekcji, które mają ten sam identyfikator zabezpieczeń co określona reguła inspekcji z listy kontroli dostępu systemu (SACL) skojarzonej z tym obiektem CommonObjectSecurity.

(Odziedziczone po CommonObjectSecurity)
RemoveAuditRuleAll(FileSystemAuditRule)

Usuwa wszystkie reguły inspekcji określonego użytkownika z bieżącego pliku lub katalogu.

RemoveAuditRuleSpecific(AuditRule)

Usuwa wszystkie reguły inspekcji, które dokładnie pasują do określonej reguły inspekcji z listy kontroli dostępu systemu (SACL) skojarzonej z tym obiektem CommonObjectSecurity.

(Odziedziczone po CommonObjectSecurity)
RemoveAuditRuleSpecific(FileSystemAuditRule)

Usuwa pojedynczą zgodną regułę inspekcji zezwalania lub odmowy z bieżącego pliku lub katalogu.

ResetAccessRule(AccessRule)

Usuwa wszystkie reguły dostępu na liście kontroli dostępu dyskrecjonalnych skojarzonych z tym obiektem CommonObjectSecurity, a następnie dodaje określoną regułę dostępu.

(Odziedziczone po CommonObjectSecurity)
ResetAccessRule(FileSystemAccessRule)

Dodaje określone uprawnienie listy kontroli dostępu (ACL) do bieżącego pliku lub katalogu i usuwa wszystkie pasujące uprawnienia listy ACL.

SetAccessRule(AccessRule)

Usuwa wszystkie reguły dostępu zawierające ten sam identyfikator zabezpieczeń i kwalifikator co określona reguła dostępu w liście kontroli dostępu dyskrecjonalnych skojarzonych z tym obiektem CommonObjectSecurity, a następnie dodaje określoną regułę dostępu.

(Odziedziczone po CommonObjectSecurity)
SetAccessRule(FileSystemAccessRule)

Ustawia określone uprawnienie listy kontroli dostępu (ACL) dla bieżącego pliku lub katalogu.

SetAccessRuleProtection(Boolean, Boolean)

Ustawia lub usuwa ochronę reguł dostępu skojarzonych z tym obiektem ObjectSecurity. Chronione reguły dostępu nie mogą być modyfikowane przez obiekty nadrzędne za pomocą dziedziczenia.

(Odziedziczone po ObjectSecurity)
SetAuditRule(AuditRule)

Usuwa wszystkie reguły inspekcji zawierające ten sam identyfikator zabezpieczeń i kwalifikator co określona reguła inspekcji na liście kontroli dostępu systemu (SACL) skojarzone z tym obiektem CommonObjectSecurity, a następnie dodaje określoną regułę inspekcji.

(Odziedziczone po CommonObjectSecurity)
SetAuditRule(FileSystemAuditRule)

Ustawia określoną regułę inspekcji dla bieżącego pliku lub katalogu.

SetAuditRuleProtection(Boolean, Boolean)

Ustawia lub usuwa ochronę reguł inspekcji skojarzonych z tym obiektem ObjectSecurity. Chronione reguły inspekcji nie mogą być modyfikowane przez obiekty nadrzędne za pomocą dziedziczenia.

(Odziedziczone po ObjectSecurity)
SetGroup(IdentityReference)

Ustawia grupę podstawową deskryptora zabezpieczeń skojarzonego z tym obiektem ObjectSecurity.

(Odziedziczone po ObjectSecurity)
SetOwner(IdentityReference)

Ustawia właściciela deskryptora zabezpieczeń skojarzonego z tym obiektem ObjectSecurity.

(Odziedziczone po ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[])

Ustawia deskryptor zabezpieczeń dla tego obiektu ObjectSecurity z określonej tablicy wartości bajtów.

(Odziedziczone po ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[], AccessControlSections)

Ustawia określone sekcje deskryptora zabezpieczeń dla tego obiektu ObjectSecurity z określonej tablicy wartości bajtowych.

(Odziedziczone po ObjectSecurity)
SetSecurityDescriptorSddlForm(String)

Ustawia deskryptor zabezpieczeń dla tego obiektu ObjectSecurity z określonego ciągu Security Descriptor Definition Language (SDDL).

(Odziedziczone po ObjectSecurity)
SetSecurityDescriptorSddlForm(String, AccessControlSections)

Ustawia określone sekcje deskryptora zabezpieczeń dla tego obiektu ObjectSecurity z określonego ciągu Security Descriptor Definition Language (SDDL).

(Odziedziczone po ObjectSecurity)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
WriteLock()

Blokuje ten obiekt ObjectSecurity w celu uzyskania dostępu do zapisu.

(Odziedziczone po ObjectSecurity)
WriteUnlock()

Odblokowuje ten obiekt ObjectSecurity na potrzeby dostępu do zapisu.

(Odziedziczone po ObjectSecurity)

Dotyczy