ACL 技術案例
System.Security.AccessControl 命名空間中的類別可以讓您以程式設計方式建立或變更與受保護資源相關聯的 Discretionary 存取控制清單 (DACL) 和系統存取控制清單 (SACL)。
本節內容描述兩個最常見的存取控制和稽核案例:在建立資源時設定規則,以及利用程式設計的方式修改現有資源的規則。
案例 1:建立新檔案或目錄的存取或稽核規則
有時您的應用程式需要建立新的檔案或資料夾。這個案例描述如何使用 Managed ACL 類別,指定新檔案或資料夾的 ACL。
案例重點
建立執行下列工作的應用程式:
建立一個或多個 FileSystemAccessRule 或 FileSystemAuditRule 物件,表示要套用的規則。
加入 FileSystemAccessRule 或 FileSystemAuditRule 物件至新的 FileSecurity 或 DirectorySecurity 物件。
透過傳遞 FileSecurity 或 DirectorySecurity 物件至適當的方法或建構函式,建立新的檔案或資料夾。每一個檔案或目錄之建立方法或建構函式都有可接受檔案安全性參數的多載。例如,除了在建立時期其他幾個設定 ACL 的方法以外,您還可以使用 File.Create 方法、Directory.CreateDirectory 方法和 FileStream.FileStream 方法。
案例 2:修改現有檔案或目錄的存取或稽核規則
有時您必須以程式設計方式變更現有檔案或資料夾的 ACL。這個案例描述如何使用 Managed ACL 類別,修改現有檔案或資料夾的 ACL。
案例重點
建立執行下列工作的應用程式:
使用 GetAccessControl 方法或 GetAccessControl 方法,從現有檔案或資料夾擷取 FileSecurity 或 DirectorySecurity 物件。
建立一個或多個 FileSystemAccessRule 或 FileSystemAuditRule 物件,表示要套用的規則。
加入 FileSystemAccessRule 或 FileSystemAuditRule 物件至新的 FileSecurity 或 DirectorySecurity 物件。
使用 SetAccessControl 方法或 GetAccessControl 方法,保存 FileSecurity 或 DirectorySecurity 物件。