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 描述 ACL 條目,應用於參數描述 path 的檔案的物件。
例外狀況
開啟檔案時發生 I/O 錯誤。
參數 path 為 null。
該檔案找不到。
該 path 參數指定一個唯讀的檔案。
-或-
目前平臺不支援此作業。
-或-
該 path 參數指定了一個目錄。
-或-
來電者沒有所需的權限。
參數 fileSecurity 為 null。
備註
此 SetAccessControl 方法將存取控制清單(ACL)條目套用到代表非繼承 ACL 清單的檔案。
注意事項
參數所指定的 fileSecurity ACL 會取代該檔案現有的 ACL。 要為新使用者新增權限,請使用 GetAccessControl 取得現有 ACL 的方法,修改它,然後 SetAccessControl 再套用回檔案。
ACL 描述了在特定檔案上擁有或不擁有特定行動權利的個人與團體。 如需詳細資訊,請參閱 如何:新增或移除存取控制清單項目。
此 SetAccessControl 方法僅 FileSecurity 保留在物件建立後被修改的物件。 如果物件 FileSecurity 尚未被修改,它不會被持久化到檔案中。 因此,無法從一個檔案取得 FileSecurity 物件,然後將同一物件套用到另一個檔案。
要將 ACL 資訊從一個檔案複製到另一個檔案:
使用該 GetAccessControl 方法從來源檔案擷取物件 FileSecurity 。
建立一個新的 FileSecurity 物件作為目標檔案。
使用GetSecurityDescriptorBinaryForm來源GetSecurityDescriptorSddlForm物件的 or FileSecurity 方法來取得 ACL 資訊。
使用 SetSecurityDescriptorBinaryForm OR SetSecurityDescriptorSddlForm 方法將步驟 3 中取得的資訊複製到目標 FileSecurity 物件。
用這個FileSecurity方法把目標SetAccessControl物件設定成目標檔案。
在 NTFS 環境中, ReadAttributes 若 ReadExtendedAttributes 使用者擁有 ListDirectory 父資料夾的權限,則會授予使用者。 在父目錄中拒絕ReadAttributesReadExtendedAttributes和 , 拒絕ListDirectory。