權限的概念相信你已經不陌生了,那麼如何設置一個文件的訪問權限呢?編程可不可以實現動態的控制文件權限信息呢?答案是肯定的,.NET可以做到這些。
自由訪問控制列表(Discretionary Access Control List,DACL)(有時縮寫為ACL)是一種 Microsoft Windows NT 和更高版本用於保護資源(例如文件和文件夾)的機制。DACL包含多個訪問控制項(Access Control Entry,ACE)。訪問控制項將一個主體(通常是一個用戶賬戶或用戶賬戶組)與一個控制資源的使用的規則相關聯。通過DACL 和ACE,可以基於與用戶賬戶關聯的權限允許或拒絕資源的權限。例如,可以創建一個ACE,並將其應用於某個文件的DACL,以阻止除管理員以外的任何人讀取該文件。
系統訪問控制列表(System Access Control List,SACL)(有時稱為審核 ACE)是一種控制與資源關聯的審核消息的機制。與DACL相似,SACL包含定義指定資源的審核規則的 ACE。通過審核ACE,可以記錄訪問資源的成功嘗試或失敗嘗試,但與訪問ACE不同的是,審核ACE不控制哪些賬戶可以使用某個資源。例如,可以創建一個ACE並將其應用於某個文件的SACL,以記錄打開該文件的所有成功嘗試。
System.Security.AccessControl命名空間通過一些方便的類(這些類抽象化Windows ACL 安全系統的大部分復雜性)提供對訪問控制列表(ACL)的訪問。此外, System.Security.AccessControl命名空間還包含幾個提供對Windows ACL安全系統的高級訪問的類。
.NET Framework提供對下列資源的ACL的訪問:加密密鑰、目錄、事件等待句柄、文件、Mutexes、注冊表項、信號量。
上述每個資源都有幾個用於創建和修改ACL的類,本節主要關注目錄和文件的訪問控制。這些類如下:
DirectorySecurity類
該類表示目錄的訪問控制和審核安全。該類指定系統目錄的訪問權限以及訪問嘗試的審核方式。此類將訪問和審核權限表示為一組規則,每個訪問規則由一個FileSystemAccessRule對象表示,而每個審核規則由一個FileSystemAuditRule對象表示。
FileSecurity類
該類指定系統文件的訪問權限以及如何審核訪問嘗試。此類將訪問和審核權限表示為一組規則,每個訪問規則由一個 FileSystemAccessRule 對象表示,而每個審核規則由一個 FileSystemAuditRule 對象表示。使用該類可檢索、添加或更改表示文件的 DACL 和 SACL 的訪問規則。
DirectorySecurity類和FileSecurity類是對基礎Microsoft Windows文件安全系統的抽象。在此系統中,每個目錄都有一個自由訪問控制列表(DACL)和一個系統訪問控制列表(SACL),前者控制對目錄的訪問,後者指定要審核的訪問控制嘗試。FileSystemAccessRule和FileSystemAuditRule 類是對組成DACL和SACL的訪問控制項(ACE)的抽象。
------------------注:本文部分內容改編自《.NET安全揭秘》
作者:玄魂
出處:http://www.cnblogs.com/xuanhun/
查看本欄目