語言

Directory.SetAccessControl(String, DirectorySecurity) 方法

定義

將物件描述的 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 描述 ACL 項目的物件,該項目應用於參數 path 所描述的目錄。

例外狀況

參數 directorySecurity 為 null。

找不到該目錄。

那是 path 無效的。

目前程序無法存取由 path所指定的目錄。

-或-

目前程序沒有足夠的權限來設定 ACL 條目。

備註

此 SetAccessControl 方法將存取控制清單(ACL)條目套用到代表非繼承 ACL 清單的目錄。

注意事項

參數所指定的 directorySecurity ACL 取代了該目錄中現有的 ACL。 要為新使用者新增權限,請使用 GetAccessControl 該方法取得現有的 ACL 並進行修改。

ACL 描述了在指定檔案或目錄上擁有或不擁有特定動作權限的個人與團體。 如需詳細資訊,請參閱 如何:新增或移除存取控制清單項目。

此 SetAccessControl 方法僅 DirectorySecurity 保留在物件建立後被修改的物件。 如果物件 DirectorySecurity 尚未被修改,它不會被持久化到檔案中。 因此,無法從一個檔案取得 DirectorySecurity 物件,然後將同一物件套用到另一個檔案。

要將 ACL 資訊從一個檔案複製到另一個檔案:

  1. 使用該 GetAccessControl 方法從來源檔案擷取物件 DirectorySecurity 。

  2. 建立一個新的 DirectorySecurity 物件作為目標檔案。

  3. 使用GetSecurityDescriptorBinaryForm來源GetSecurityDescriptorSddlForm物件的 or DirectorySecurity 方法來取得 ACL 資訊。

  4. 使用 SetSecurityDescriptorBinaryForm OR SetSecurityDescriptorSddlForm 方法將步驟 3 中取得的資訊複製到目標 DirectorySecurity 物件。

  5. 用這個DirectorySecurity方法把目標SetAccessControl物件設定成目標檔案。

在 NTFS 環境中, ReadAttributes 若 ReadExtendedAttributes 使用者擁有 ListDirectory 父資料夾的權限,則會授予使用者。 在父目錄中拒絕ReadAttributesReadExtendedAttributes和 , 拒絕ListDirectory。

適用於

另請參閱