ACL 技术方案
更新:2007 年 11 月
通过 System.Security.AccessControl 命名空间中的类,可以以编程方式创建或更改与受保护资源关联的自由访问控制列表 (DACL) 和系统访问控制列表 (SACL)。
本节描述两种最常见的访问控制和审核方案:在创建资源时设置规则和以编程方式修改现有资源的规则。
方案 1:为新文件或目录创建访问规则或审核规则
有时候,您的应用程序需要创建一个新文件或文件夹。 该方案描述如何使用托管 ACL 类为新文件或文件夹指定 ACL。
方案关键点
创建一个执行下列任务的应用程序:
创建一个或多个 FileSystemAccessRule 或 FileSystemAuditRule 对象来表示您要应用的规则。
将 FileSystemAccessRule 或 FileSystemAuditRule 对象添加到新的 FileSecurity 或 DirectorySecurity 对象。
通过将 FileSecurity 或 DirectorySecurity 对象传递到相应的方法或构造函数来创建新文件或文件夹。 每个文件或目录创建方法或构造函数都有接受文件安全参数的重载。 例如,除了其他几种方法外,您还可以使用 File.Create 方法、Directory.CreateDirectory 方法和 FileStream.FileStream 方法在创建时设置 ACL。
方案 2:修改现有文件或目录的访问规则或审核规则
有时候,您需要以编程方式更改现有文件或文件夹的 ACL。 该方案描述如何使用托管 ACL 类修改现有文件或文件夹的 ACL。
方案关键点
创建一个执行下列任务的应用程序:
使用 GetAccessControl 方法或 GetAccessControl 方法从现有文件或文件夹检索 FileSecurity 或 DirectorySecurity 对象。
创建一个或多个 FileSystemAccessRule 或 FileSystemAuditRule 对象来表示您要应用的规则。
将 FileSystemAccessRule 或 FileSystemAuditRule 对象添加到 FileSecurity 或 DirectorySecurity 对象。
使用 SetAccessControl 方法或 GetAccessControl 方法保存 FileSecurity 或 DirectorySecurity 对象。