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 清單的目錄。
謹慎
為 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。