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
FileSecurity 物件,描述要套用至 path
參數所描述之檔案的 ACL 專案。
例外狀況
開啟檔案時發生 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。