Directory.SetAccessControl(String, DirectorySecurity) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将 DirectorySecurity 对象描述的访问控制列表(ACL)条目应用于指定目录。
public:
static void SetAccessControl(System::String ^ path, System::Security::AccessControl::DirectorySecurity ^ directorySecurity);
public static void SetAccessControl (string path, System.Security.AccessControl.DirectorySecurity directorySecurity);
static member SetAccessControl : string * System.Security.AccessControl.DirectorySecurity -> unit
Public Shared Sub SetAccessControl (path As String, directorySecurity As DirectorySecurity)
参数
- path
- String
要从中添加或删除访问控制列表(ACL)条目的目录。
- directorySecurity
- DirectorySecurity
描述要应用于 path
参数所描述的目录的 ACL 条目的 DirectorySecurity 对象。
例外
directorySecurity
参数 null
。
找不到目录。
path
无效。
注解
SetAccessControl 方法将访问控制列表(ACL)条目应用于表示非已加入 ACL 列表的目录。
谨慎
为 directorySecurity
参数指定的 ACL 替换目录的现有 ACL。 若要为新用户添加权限,请使用 GetAccessControl 方法获取现有 ACL 并对其进行修改。
ACL 描述对给定文件或目录的特定操作具有或无权的个人和组。 有关详细信息,请参阅 如何:添加或删除访问控制列表项。
SetAccessControl 方法仅保留创建对象后修改的 DirectorySecurity 对象。 如果未修改 DirectorySecurity 对象,则不会将其保存到文件中。 因此,无法从一个文件中检索 DirectorySecurity 对象,并将同一对象重新应用到另一个文件。
将 ACL 信息从一个文件复制到另一个文件:
使用 GetAccessControl 方法从源文件中检索 DirectorySecurity 对象。
为目标文件创建新的 DirectorySecurity 对象。
使用源 DirectorySecurity 对象的 GetSecurityDescriptorBinaryForm 或 GetSecurityDescriptorSddlForm 方法检索 ACL 信息。
使用 SetSecurityDescriptorBinaryForm 或 SetSecurityDescriptorSddlForm 方法将步骤 3 中检索到的信息复制到目标 DirectorySecurity 对象。
使用 SetAccessControl 方法将目标 DirectorySecurity 对象设置为目标文件。
在 NTFS 环境中,如果用户对父文件夹具有 ListDirectory 权限,则向用户授予 ReadAttributes 和 ReadExtendedAttributes。 若要拒绝 ReadAttributes 和 ReadExtendedAttributes,请拒绝父目录上的 ListDirectory。