共用方式為


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 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 類別是 FileSecurityDirectorySecurity 類別的基類。 這些類別代表系統檔案或目錄的所有訪問許可權,並定義稽核存取嘗試的方式。

FileSystemSecurity 類別將存取權和稽核許可權表示為一組規則。 每個存取規則都會以 FileSystemAccessRule 物件表示,而每個稽核規則則以 FileSystemAuditRule 物件表示。

FileSystemSecurity 類別是基礎Microsoft Windows 檔案安全性系統的抽象概念。 在此系統中,每個檔案或目錄都有可控制檔案或目錄存取權的任意訪問控制清單 (DACL),以及系統訪問控制清單 (SACL),指定稽核的訪問控制嘗試。 FileSystemAccessRuleFileSystemAuditRule 類別是組成 DACL 和 SCL 之存取控制專案 (ACE) 的抽象概念。

FileSystemSecurity 類別會隱藏 DACL 和 SCL 的許多詳細數據;您不必擔心 ACE 排序或 Null DACLS。

使用下列 .NET 實作相依方法,從檔案新增或擷取 ACL 資訊:

.NET 實作 新增規則 擷取
。網 FileSystemAclExtensions.SetAccessControl(FileInfo, FileSecurity) FileSystemAclExtensions.GetAccessControl(FileInfo)
.NET Framework FileInfo.SetAccessControl(FileSecurity) FileInfo.GetAccessControl()

屬性

AccessRightType

取得 FileSystemSecurity 類別用來表示訪問許可權的列舉。

AccessRulesModified

取得或設定 Boolean 值,指定是否已修改與此 ObjectSecurity 對象相關聯的存取規則。

(繼承來源 ObjectSecurity)
AccessRuleType

取得 FileSystemSecurity 類別用來表示存取規則的列舉。

AreAccessRulesCanonical

取得布爾值,指定與此 ObjectSecurity 對象相關聯的存取規則是否依標準順序排列。

(繼承來源 ObjectSecurity)
AreAccessRulesProtected

取得布爾值,指定是否保護與此 ObjectSecurity 對象相關聯的任意訪問控制清單 (DACL)。

(繼承來源 ObjectSecurity)
AreAuditRulesCanonical

取得布爾值,指定與此 ObjectSecurity 對象相關聯的稽核規則是否依標準順序排列。

(繼承來源 ObjectSecurity)
AreAuditRulesProtected

取得布爾值,指定與這個 ObjectSecurity 對象相關聯的系統訪問控制清單 (SACL) 是否受到保護。

(繼承來源 ObjectSecurity)
AuditRulesModified

取得或設定布爾值,指定是否已修改與此 ObjectSecurity 對象相關聯的稽核規則。

(繼承來源 ObjectSecurity)
AuditRuleType

取得 FileSystemSecurity 類別用來表示稽核規則的類型。

GroupModified

取得或設定 Boolean 值,指定與安全性實體對象相關聯的群組是否已修改。

(繼承來源 ObjectSecurity)
IsContainer

取得布爾值,指定這個 ObjectSecurity 物件是否為容器物件。

(繼承來源 ObjectSecurity)
IsDS

取得布爾值,指定這個 ObjectSecurity 物件是否為目錄物件。

(繼承來源 ObjectSecurity)
OwnerModified

取得或設定布爾值,指定安全性實體對象的擁有者是否已修改。

(繼承來源 ObjectSecurity)
SecurityDescriptor

取得這個實例的安全性描述元。

(繼承來源 ObjectSecurity)

方法

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

使用指定的訪問許可權、訪問控制和旗標,初始化 FileSystemAccessRule 類別的新實例,這個實例代表指定使用者的新訪問控制規則。

AddAccessRule(AccessRule)

將指定的存取規則新增至與此 CommonObjectSecurity 對象相關聯的 Discretionary 訪問控制清單 (DACL)。

(繼承來源 CommonObjectSecurity)
AddAccessRule(FileSystemAccessRule)

將指定的存取控制清單 (ACL) 權限新增至目前的檔案或目錄。

AddAuditRule(AuditRule)

將指定的稽核規則新增至與此 CommonObjectSecurity 對象相關聯的系統訪問控制清單 (SACL)。

(繼承來源 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)

傳回與這個 ObjectSecurity 物件相關聯之安全性描述元之指定區段的安全性描述元定義語言 (SDDL) 表示法。

(繼承來源 ObjectSecurity)
GetType()

取得目前實例的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
ModifyAccess(AccessControlModification, AccessRule, Boolean)

將指定的修改套用至與此 CommonObjectSecurity 對象相關聯的 Discretionary 訪問控制清單 (DACL)。

(繼承來源 CommonObjectSecurity)
ModifyAccessRule(AccessControlModification, AccessRule, Boolean)

將指定的修改套用至與此 ObjectSecurity 對象相關聯的 Discretionary 訪問控制清單 (DACL)。

(繼承來源 ObjectSecurity)
ModifyAudit(AccessControlModification, AuditRule, Boolean)

將指定的修改套用至與此 CommonObjectSecurity 對象相關聯的系統訪問控制清單(SACL)。

(繼承來源 CommonObjectSecurity)
ModifyAuditRule(AccessControlModification, AuditRule, Boolean)

將指定的修改套用至與此 ObjectSecurity 對象相關聯的系統訪問控制清單(SACL)。

(繼承來源 ObjectSecurity)
Persist(Boolean, String, AccessControlSections)

將與此 ObjectSecurity 對象相關聯之安全性描述元的指定區段儲存至永久記憶體。 建議傳遞至建構函式和保存方法之 includeSections 參數的值相同。

(繼承來源 ObjectSecurity)
Persist(SafeHandle, AccessControlSections)

將與此 NativeObjectSecurity 對象相關聯之安全性描述元的指定區段儲存至永久記憶體。 我們建議.persist,傳遞至建構函式和保存方法之 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 對象相關聯的任意存取控制清單 (DACL) 中移除包含與指定存取規則相同的安全性識別元和存取掩碼的存取規則。

(繼承來源 CommonObjectSecurity)
RemoveAccessRule(FileSystemAccessRule)

從目前檔案或目錄移除所有相符的允許或拒絕存取控制清單 (ACL) 許可權。

RemoveAccessRuleAll(AccessRule)

從與此 CommonObjectSecurity 對象相關聯的任意存取控制清單 (DACL) 中移除具有相同安全性識別碼的所有存取規則。

(繼承來源 CommonObjectSecurity)
RemoveAccessRuleAll(FileSystemAccessRule)

從目前檔案或目錄移除指定使用者的所有訪問控制清單 (ACL) 許可權。

RemoveAccessRuleSpecific(AccessRule)

從與此 CommonObjectSecurity 物件相關聯的任意存取控制清單 (DACL) 移除完全符合指定存取規則的所有存取規則。

(繼承來源 CommonObjectSecurity)
RemoveAccessRuleSpecific(FileSystemAccessRule)

從目前檔案或目錄移除單一相符的允許或拒絕訪問控制清單 (ACL) 許可權。

RemoveAuditRule(AuditRule)

從與此 CommonObjectSecurity 對象相關聯的系統訪問控制清單 (SACL) 中移除包含與指定之稽核規則相同的安全性識別碼和存取掩碼的稽核規則。

(繼承來源 CommonObjectSecurity)
RemoveAuditRule(FileSystemAuditRule)

從目前的檔案或目錄中移除所有相符的允許或拒絕稽核規則。

RemoveAuditRuleAll(AuditRule)

從與此 CommonObjectSecurity 對象相關聯的系統存取控制清單 (SACL) 中移除具有相同安全性識別碼的所有稽核規則。

(繼承來源 CommonObjectSecurity)
RemoveAuditRuleAll(FileSystemAuditRule)

從目前檔案或目錄移除指定使用者的所有稽核規則。

RemoveAuditRuleSpecific(AuditRule)

從與此 CommonObjectSecurity 對象相關聯的系統存取控制清單 (SACL) 移除完全符合指定稽核規則的所有稽核規則。

(繼承來源 CommonObjectSecurity)
RemoveAuditRuleSpecific(FileSystemAuditRule)

從目前的檔案或目錄移除單一比對允許或拒絕稽核規則。

ResetAccessRule(AccessRule)

拿掉與此 CommonObjectSecurity 物件相關聯的任意存取控制清單 (DACL) 中的所有存取規則,然後新增指定的存取規則。

(繼承來源 CommonObjectSecurity)
ResetAccessRule(FileSystemAccessRule)

將指定的訪問控制清單 (ACL) 許可權新增至目前的檔案或目錄,並移除所有相符的 ACL 許可權。

SetAccessRule(AccessRule)

拿掉與這個 CommonObjectSecurity 對象相關聯的任意存取控制清單 (DACL) 中,包含與指定存取規則相同的安全性識別元和限定符的所有存取規則,然後新增指定的存取規則。

(繼承來源 CommonObjectSecurity)
SetAccessRule(FileSystemAccessRule)

設定目前檔案或目錄的指定存取控制清單 (ACL) 許可權。

SetAccessRuleProtection(Boolean, Boolean)

設定或移除與此 ObjectSecurity 對象相關聯的存取規則保護。 父物件無法透過繼承修改受保護的存取規則。

(繼承來源 ObjectSecurity)
SetAuditRule(AuditRule)

拿掉所有包含與這個 CommonObjectSecurity 物件相關聯之系統存取控制清單 (SACL) 中指定稽核規則之安全性識別碼和限定符的稽核規則,然後新增指定的稽核規則。

(繼承來源 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)

從指定的安全性描述元定義語言 (SDDL) 字串,設定這個 ObjectSecurity 物件的安全性描述元。

(繼承來源 ObjectSecurity)
SetSecurityDescriptorSddlForm(String, AccessControlSections)

從指定的安全性描述元定義語言 (SDDL) 字串,設定這個 ObjectSecurity 物件之安全性描述元的指定區段。

(繼承來源 ObjectSecurity)
ToString()

傳回表示目前 物件的字串。

(繼承來源 Object)
WriteLock()

鎖定此 ObjectSecurity 物件以進行寫入存取。

(繼承來源 ObjectSecurity)
WriteUnlock()

解除鎖定此 ObjectSecurity 對象以進行寫入存取。

(繼承來源 ObjectSecurity)

適用於