ACL 技术方案

通过 System.Security.AccessControl 命名空间中的类,可以以编程方式创建或更改与受保护资源关联的自由访问控制列表 (DACL) 和系统访问控制列表 (SACL)。

本节描述两种最常见的访问控制和审核方案:在创建资源时设置规则和以编程方式修改现有资源的规则。

方案 1:为新文件或目录创建访问规则或审核规则

有时候,您的应用程序需要创建一个新文件或文件夹。 该方案描述如何使用托管 ACL 类为新文件或文件夹指定 ACL。

方案关键点

创建一个执行下列任务的应用程序:

  1. 创建一个或多个 FileSystemAccessRuleFileSystemAuditRule 对象来表示您要应用的规则。

  2. FileSystemAccessRuleFileSystemAuditRule 对象添加到新的 FileSecurityDirectorySecurity 对象。

  3. 通过将 FileSecurityDirectorySecurity 对象传递到相应的方法或构造函数来创建新文件或文件夹。 每个文件或目录创建方法或构造函数都有接受文件安全参数的重载。 例如,除了其他几种方法外,您还可以使用 File.Create 方法、Directory.CreateDirectory 方法和 FileStream.FileStream 方法在创建时设置 ACL。

方案 2:修改现有文件或目录的访问规则或审核规则

有时候,您需要以编程方式更改现有文件或文件夹的 ACL。 该方案描述如何使用托管 ACL 类修改现有文件或文件夹的 ACL。

方案关键点

创建一个执行下列任务的应用程序:

  1. 使用 GetAccessControl 方法或 GetAccessControl 方法从现有文件或文件夹检索 FileSecurityDirectorySecurity 对象。

  2. 创建一个或多个 FileSystemAccessRuleFileSystemAuditRule 对象来表示您要应用的规则。

  3. FileSystemAccessRuleFileSystemAuditRule 对象添加到 FileSecurityDirectorySecurity 对象。

  4. 使用 SetAccessControl 方法或 GetAccessControl 方法保存 FileSecurityDirectorySecurity 对象。

请参见

其他资源

ACL 技术概述

.NET Framework 中的安全性