Aracılığıyla paylaş


FileSystemSecurity Sınıf

Tanım

Bir dosya veya dizin için erişim denetimini ve denetim güvenliğini temsil eder.

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
Devralma
Türetilmiş
Öznitelikler

Örnekler

Aşağıdaki kod örneği, FileSecurity sınıfını kullanarak bir dosyaya erişim denetim listesi (ACL) girdisi ekler ve kaldırır. Bu örneği çalıştırmak için geçerli bir kullanıcı veya grup hesabı sağlamanız gerekir.

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

Açıklamalar

FileSystemSecurity sınıfı, FileSecurity ve DirectorySecurity sınıfları için temel sınıftır. Bu sınıflar bir sistem dosyası veya dizini için tüm erişim haklarını temsil eder ve erişim girişimlerinin nasıl denetlenip denetlenemini tanımlar.

FileSystemSecurity sınıfı, erişim ve denetim haklarını bir dizi kural olarak temsil eder. Her erişim kuralı bir FileSystemAccessRule nesnesiyle, her denetim kuralı ise bir FileSystemAuditRule nesnesiyle temsil edilir.

FileSystemSecurity sınıfı, temel alınan Microsoft Windows dosya güvenlik sisteminin soyutlamasıdır. Bu sistemde, her dosya veya dizinin dosya veya dizine erişimi denetleyen isteğe bağlı erişim denetim listesi (DACL) ve denetlenen erişim denetimi girişimlerini belirten bir sistem erişim denetimi listesi (SACL) vardır. FileSystemAccessRule ve FileSystemAuditRule sınıfları, DACL'leri ve SACL'leri oluşturan erişim denetimi girişlerinin (ACL) soyutlamalarıdır.

FileSystemSecurity sınıfı, DACL'lerin ve SACL'lerin birçok ayrıntısını gizler; ACE sıralama veya null DACLS konusunda endişelenmeniz gerekmez.

Bir dosyadan ACL bilgileri eklemek veya almak için aşağıdaki .NET uygulamasına bağımlı yöntemleri kullanın:

.NET uygulaması Kural ekleme Kuralları alma
.NET FileSystemAclExtensions.SetAccessControl(FileInfo, FileSecurity) FileSystemAclExtensions.GetAccessControl(FileInfo)
.NET Framework FileInfo.SetAccessControl(FileSecurity) FileInfo.GetAccessControl()

Özellikler

AccessRightType

FileSystemSecurity sınıfının erişim haklarını temsil etmek için kullandığı numaralandırmayı alır.

AccessRulesModified

Bu ObjectSecurity nesnesiyle ilişkili erişim kurallarının değiştirilip değiştirilmediğini belirten bir Boole değeri alır veya ayarlar.

(Devralındığı yer: ObjectSecurity)
AccessRuleType

FileSystemSecurity sınıfının erişim kurallarını göstermek için kullandığı numaralandırmayı alır.

AreAccessRulesCanonical

Bu ObjectSecurity nesnesiyle ilişkili erişim kurallarının kurallı sırada olup olmadığını belirten bir Boole değeri alır.

(Devralındığı yer: ObjectSecurity)
AreAccessRulesProtected

Bu ObjectSecurity nesnesiyle ilişkili İsteğe Bağlı Erişim Denetim Listesi'nin (DACL) korunup korunmadığını belirten bir Boole değeri alır.

(Devralındığı yer: ObjectSecurity)
AreAuditRulesCanonical

Bu ObjectSecurity nesnesiyle ilişkili denetim kurallarının kurallı sırada olup olmadığını belirten bir Boole değeri alır.

(Devralındığı yer: ObjectSecurity)
AreAuditRulesProtected

Bu ObjectSecurity nesnesiyle ilişkili Sistem Erişim Denetim Listesi'nin (SACL) korunup korunmadığını belirten bir Boole değeri alır.

(Devralındığı yer: ObjectSecurity)
AuditRulesModified

Bu ObjectSecurity nesnesiyle ilişkili denetim kurallarının değiştirilip değiştirilmediğini belirten bir Boole değeri alır veya ayarlar.

(Devralındığı yer: ObjectSecurity)
AuditRuleType

FileSystemSecurity sınıfının denetim kurallarını göstermek için kullandığı türü alır.

GroupModified

Güvenli hale getirilebilir nesneyle ilişkili grubun değiştirilip değiştirilmediğini belirten bir Boole değeri alır veya ayarlar.

(Devralındığı yer: ObjectSecurity)
IsContainer

Bu ObjectSecurity nesnesinin bir kapsayıcı nesnesi olup olmadığını belirten bir Boole değeri alır.

(Devralındığı yer: ObjectSecurity)
IsDS

Bu ObjectSecurity nesnesinin bir dizin nesnesi olup olmadığını belirten bir Boole değeri alır.

(Devralındığı yer: ObjectSecurity)
OwnerModified

Güvenli hale getirilebilir nesnenin sahibinin değiştirilip değiştirilmediğini belirten bir Boole değeri alır veya ayarlar.

(Devralındığı yer: ObjectSecurity)
SecurityDescriptor

Bu örnek için güvenlik tanımlayıcısını alır.

(Devralındığı yer: ObjectSecurity)

Yöntemler

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

Belirtilen kullanıcı için yeni bir erişim denetimi kuralını temsil eden, belirtilen erişim hakları, erişim denetimi ve bayraklarla FileSystemAccessRule sınıfının yeni bir örneğini başlatır.

AddAccessRule(AccessRule)

Belirtilen erişim kuralını bu CommonObjectSecurity nesnesiyle ilişkilendirilmiş İsteğe Bağlı Erişim Denetim Listesi'ne (DACL) ekler.

(Devralındığı yer: CommonObjectSecurity)
AddAccessRule(FileSystemAccessRule)

Belirtilen erişim denetimi listesi (ACL) iznini geçerli dosyaya veya dizine ekler.

AddAuditRule(AuditRule)

Belirtilen denetim kuralını bu CommonObjectSecurity nesnesiyle ilişkilendirilmiş Sistem Erişim Denetim Listesi'ne (SACL) ekler.

(Devralındığı yer: CommonObjectSecurity)
AddAuditRule(FileSystemAuditRule)

Belirtilen denetim kuralını geçerli dosyaya veya dizine ekler.

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

Belirtilen kullanıcı için belirtilen denetim kuralını temsil eden FileSystemAuditRule sınıfının yeni bir örneğini başlatır.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetAccessRules(Boolean, Boolean, Type)

Belirtilen güvenlik tanımlayıcısıyla ilişkili erişim kuralları koleksiyonunu alır.

(Devralındığı yer: CommonObjectSecurity)
GetAuditRules(Boolean, Boolean, Type)

Belirtilen güvenlik tanımlayıcısıyla ilişkili denetim kuralları koleksiyonunu alır.

(Devralındığı yer: CommonObjectSecurity)
GetGroup(Type)

Belirtilen sahiple ilişkili birincil grubu alır.

(Devralındığı yer: ObjectSecurity)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetOwner(Type)

Belirtilen birincil grupla ilişkili sahibi alır.

(Devralındığı yer: ObjectSecurity)
GetSecurityDescriptorBinaryForm()

Bu ObjectSecurity nesnesi için güvenlik tanımlayıcı bilgilerini temsil eden bir bayt değerleri dizisi döndürür.

(Devralındığı yer: ObjectSecurity)
GetSecurityDescriptorSddlForm(AccessControlSections)

Bu ObjectSecurity nesnesiyle ilişkili güvenlik tanımlayıcısının belirtilen bölümlerinin Güvenlik Tanımlayıcısı Tanım Dili (SDDL) gösterimini döndürür.

(Devralındığı yer: ObjectSecurity)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
ModifyAccess(AccessControlModification, AccessRule, Boolean)

Belirtilen değişikliği bu CommonObjectSecurity nesnesiyle ilişkili İsteğe Bağlı Erişim Denetim Listesi'ne (DACL) uygular.

(Devralındığı yer: CommonObjectSecurity)
ModifyAccessRule(AccessControlModification, AccessRule, Boolean)

Belirtilen değişikliği bu ObjectSecurity nesnesiyle ilişkili İsteğe Bağlı Erişim Denetim Listesi'ne (DACL) uygular.

(Devralındığı yer: ObjectSecurity)
ModifyAudit(AccessControlModification, AuditRule, Boolean)

Bu CommonObjectSecurity nesnesiyle ilişkili Sistem Erişim Denetim Listesi'ne (SACL) belirtilen değişikliği uygular.

(Devralındığı yer: CommonObjectSecurity)
ModifyAuditRule(AccessControlModification, AuditRule, Boolean)

Bu ObjectSecurity nesnesiyle ilişkili Sistem Erişim Denetim Listesi'ne (SACL) belirtilen değişikliği uygular.

(Devralındığı yer: ObjectSecurity)
Persist(Boolean, String, AccessControlSections)

Bu ObjectSecurity nesnesiyle ilişkili güvenlik tanımlayıcısının belirtilen bölümlerini kalıcı depolama alanına kaydeder. Oluşturucu ve kalıcı yöntemlere geçirilen includeSections parametrelerinin değerlerinin aynı olmasını öneririz.

(Devralındığı yer: ObjectSecurity)
Persist(SafeHandle, AccessControlSections)

Bu NativeObjectSecurity nesnesiyle ilişkili güvenlik tanımlayıcısının belirtilen bölümlerini kalıcı depolama alanına kaydeder. Oluşturucuya geçirilen includeSections parametrelerinin değerlerinin ve kalıcı yöntemlerin aynı olmasını öneririz.

(Devralındığı yer: NativeObjectSecurity)
Persist(SafeHandle, AccessControlSections, Object)

Bu NativeObjectSecurity nesnesiyle ilişkili güvenlik tanımlayıcısının belirtilen bölümlerini kalıcı depolama alanına kaydeder. Oluşturucu ve kalıcı yöntemlere geçirilen includeSections parametrelerinin değerlerinin aynı olmasını öneririz.

(Devralındığı yer: NativeObjectSecurity)
Persist(String, AccessControlSections)

Bu NativeObjectSecurity nesnesiyle ilişkili güvenlik tanımlayıcısının belirtilen bölümlerini kalıcı depolama alanına kaydeder. Oluşturucu ve kalıcı yöntemlere geçirilen includeSections parametrelerinin değerlerinin aynı olmasını öneririz.

(Devralındığı yer: NativeObjectSecurity)
Persist(String, AccessControlSections, Object)

Bu NativeObjectSecurity nesnesiyle ilişkili güvenlik tanımlayıcısının belirtilen bölümlerini kalıcı depolama alanına kaydeder. Oluşturucu ve kalıcı yöntemlere geçirilen includeSections parametrelerinin değerlerinin aynı olmasını öneririz.

(Devralındığı yer: NativeObjectSecurity)
PurgeAccessRules(IdentityReference)

Belirtilen IdentityReferenceile ilişkili tüm erişim kurallarını kaldırır.

(Devralındığı yer: ObjectSecurity)
PurgeAuditRules(IdentityReference)

Belirtilen IdentityReferenceile ilişkili tüm denetim kurallarını kaldırır.

(Devralındığı yer: ObjectSecurity)
ReadLock()

Okuma erişimi için bu ObjectSecurity nesnesini kilitler.

(Devralındığı yer: ObjectSecurity)
ReadUnlock()

Okuma erişimi için bu ObjectSecurity nesnesinin kilidini açar.

(Devralındığı yer: ObjectSecurity)
RemoveAccessRule(AccessRule)

Bu CommonObjectSecurity nesnesiyle ilişkilendirilmiş İsteğe Bağlı Erişim Denetim Listesi'nden (DACL) belirtilen erişim kuralıyla aynı güvenlik tanımlayıcısını ve erişim maskesini içeren erişim kurallarını kaldırır.

(Devralındığı yer: CommonObjectSecurity)
RemoveAccessRule(FileSystemAccessRule)

Geçerli dosya veya dizinden tüm eşleşen izin verme veya reddetme erişim denetimi listesi (ACL) izinlerini kaldırır.

RemoveAccessRuleAll(AccessRule)

Belirtilen erişim kuralıyla aynı güvenlik tanımlayıcısı olan tüm erişim kurallarını bu CommonObjectSecurity nesnesiyle ilişkilendirilmiş İsteğe Bağlı Erişim Denetim Listesi'nden (DACL) kaldırır.

(Devralındığı yer: CommonObjectSecurity)
RemoveAccessRuleAll(FileSystemAccessRule)

Belirtilen kullanıcının tüm erişim denetimi listesi (ACL) izinlerini geçerli dosyadan veya dizinden kaldırır.

RemoveAccessRuleSpecific(AccessRule)

Bu CommonObjectSecurity nesnesiyle ilişkilendirilmiş İsteğe Bağlı Erişim Denetim Listesi'nden (DACL) belirtilen erişim kuralıyla tam olarak eşleşen tüm erişim kurallarını kaldırır.

(Devralındığı yer: CommonObjectSecurity)
RemoveAccessRuleSpecific(FileSystemAccessRule)

Geçerli dosya veya dizinden tek bir eşleştirme izin ver veya erişim denetimi listesi (ACL) iznini reddeder.

RemoveAuditRule(AuditRule)

Bu CommonObjectSecurity nesnesiyle ilişkili Sistem Erişim Denetim Listesi'nden (SACL) belirtilen denetim kuralıyla aynı güvenlik tanımlayıcısını ve erişim maskesini içeren denetim kurallarını kaldırır.

(Devralındığı yer: CommonObjectSecurity)
RemoveAuditRule(FileSystemAuditRule)

Geçerli dosya veya dizinden tüm eşleşen izin verme veya reddetme denetim kurallarını kaldırır.

RemoveAuditRuleAll(AuditRule)

Belirtilen denetim kuralıyla aynı güvenlik tanımlayıcısına sahip tüm denetim kurallarını bu CommonObjectSecurity nesnesiyle ilişkilendirilmiş Sistem Erişim Denetim Listesi'nden (SACL) kaldırır.

(Devralındığı yer: CommonObjectSecurity)
RemoveAuditRuleAll(FileSystemAuditRule)

Belirtilen kullanıcının tüm denetim kurallarını geçerli dosyadan veya dizinden kaldırır.

RemoveAuditRuleSpecific(AuditRule)

Bu CommonObjectSecurity nesnesiyle ilişkilendirilmiş Sistem Erişimi Denetim Listesi'nden (SACL) belirtilen denetim kuralıyla tam olarak eşleşen tüm denetim kurallarını kaldırır.

(Devralındığı yer: CommonObjectSecurity)
RemoveAuditRuleSpecific(FileSystemAuditRule)

Geçerli dosya veya dizinden tek bir eşleştirme izin verme veya reddetme denetim kuralını kaldırır.

ResetAccessRule(AccessRule)

Bu CommonObjectSecurity nesnesiyle ilişkili İsteğe Bağlı Erişim Denetim Listesi'ndeki (DACL) tüm erişim kurallarını kaldırır ve ardından belirtilen erişim kuralını ekler.

(Devralındığı yer: CommonObjectSecurity)
ResetAccessRule(FileSystemAccessRule)

Belirtilen erişim denetimi listesi (ACL) iznini geçerli dosyaya veya dizine ekler ve eşleşen tüm ACL izinlerini kaldırır.

SetAccessRule(AccessRule)

Bu CommonObjectSecurity nesnesiyle ilişkili İsteğe Bağlı Erişim Denetim Listesi'nde (DACL) belirtilen erişim kuralıyla aynı güvenlik tanımlayıcısını ve niteleyiciyi içeren tüm erişim kurallarını kaldırır ve sonra belirtilen erişim kuralını ekler.

(Devralındığı yer: CommonObjectSecurity)
SetAccessRule(FileSystemAccessRule)

Geçerli dosya veya dizin için belirtilen erişim denetimi listesi (ACL) iznini ayarlar.

SetAccessRuleProtection(Boolean, Boolean)

Bu ObjectSecurity nesnesiyle ilişkili erişim kurallarının korumasını ayarlar veya kaldırır. Korumalı erişim kuralları üst nesneler tarafından devralma yoluyla değiştirilemez.

(Devralındığı yer: ObjectSecurity)
SetAuditRule(AuditRule)

Bu CommonObjectSecurity nesnesiyle ilişkilendirilmiş Sistem Erişim Denetim Listesi'nde (SACL) belirtilen denetim kuralıyla aynı güvenlik tanımlayıcısını ve niteleyiciyi içeren tüm denetim kurallarını kaldırır ve ardından belirtilen denetim kuralını ekler.

(Devralındığı yer: CommonObjectSecurity)
SetAuditRule(FileSystemAuditRule)

Geçerli dosya veya dizin için belirtilen denetim kuralını ayarlar.

SetAuditRuleProtection(Boolean, Boolean)

Bu ObjectSecurity nesnesiyle ilişkili denetim kurallarının korumasını ayarlar veya kaldırır. Korumalı denetim kuralları üst nesneler tarafından devralma yoluyla değiştirilemez.

(Devralındığı yer: ObjectSecurity)
SetGroup(IdentityReference)

Bu ObjectSecurity nesnesiyle ilişkili güvenlik tanımlayıcısı için birincil grubu ayarlar.

(Devralındığı yer: ObjectSecurity)
SetOwner(IdentityReference)

Bu ObjectSecurity nesnesiyle ilişkili güvenlik tanımlayıcısının sahibini ayarlar.

(Devralındığı yer: ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[])

Belirtilen bayt değerleri dizisinden bu ObjectSecurity nesnesi için güvenlik tanımlayıcısını ayarlar.

(Devralındığı yer: ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[], AccessControlSections)

Bu ObjectSecurity nesnesi için güvenlik tanımlayıcısının belirtilen bölümlerini belirtilen bayt değerleri dizisinden ayarlar.

(Devralındığı yer: ObjectSecurity)
SetSecurityDescriptorSddlForm(String)

Belirtilen Güvenlik Tanımlayıcısı Tanım Dili (SDDL) dizesinden bu ObjectSecurity nesnesi için güvenlik tanımlayıcısını ayarlar.

(Devralındığı yer: ObjectSecurity)
SetSecurityDescriptorSddlForm(String, AccessControlSections)

Belirtilen Güvenlik Tanımlayıcısı Tanım Dili (SDDL) dizesinden bu ObjectSecurity nesnesi için güvenlik tanımlayıcısının belirtilen bölümlerini ayarlar.

(Devralındığı yer: ObjectSecurity)
ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)
WriteLock()

Bu ObjectSecurity nesnesini yazma erişimi için kilitler.

(Devralındığı yer: ObjectSecurity)
WriteUnlock()

Yazma erişimi için bu ObjectSecurity nesnesinin kilidini açar.

(Devralındığı yer: ObjectSecurity)

Şunlara uygulanır