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