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
描述 DirectorySecurity 要应用于参数描述 path 的目录的 ACL 条目的对象。
例外
参数 directorySecurity 为 null.
找不到目录。
无效 path 。
注解
该方法将 SetAccessControl 访问控制列表(ACL)条目应用于表示非已加入 ACL 列表的目录。
Caution
为 directorySecurity 参数指定的 ACL 将替换目录的现有 ACL。 若要为新用户添加权限,请使用 GetAccessControl 该方法获取现有 ACL 并对其进行修改。
ACL 描述对给定文件或目录的特定操作具有或无权的个人和组。 有关详细信息,请参阅 “如何:添加或删除访问控制列表条目”。
该方法 SetAccessControl 仅 DirectorySecurity 保留创建对象后已修改的对象。 DirectorySecurity如果对象尚未修改,则不会将其保存到文件中。 因此,无法从一个文件中检索对象 DirectorySecurity ,并将同一对象重新应用到另一个文件。
将 ACL 信息从一个文件复制到另一个文件:
GetAccessControl使用该方法从源文件中检索DirectorySecurity对象。
为目标文件创建新 DirectorySecurity 对象。
GetSecurityDescriptorBinaryForm使用源GetSecurityDescriptorSddlForm对象的或DirectorySecurity方法检索 ACL 信息。
SetSecurityDescriptorBinaryForm使用或SetSecurityDescriptorSddlForm方法将步骤 3 中检索到的信息复制到目标DirectorySecurity对象。
使用DirectorySecurity该方法将目标SetAccessControl对象设置为目标文件。
在 NTFS 环境中,如果用户具有ReadAttributes父文件夹的权限,ReadExtendedAttributes则ListDirectory向用户授予该权限。 若要拒绝 ReadAttributes 和 ReadExtendedAttributes拒绝父目录,请拒绝 ListDirectory 。