1. 程式人生 > >控制檔案和資料夾的訪問許可權-FileIOPermission,CodeAccessPermission 類

控制檔案和資料夾的訪問許可權-FileIOPermission,CodeAccessPermission 類

隱身的許可權

在授予許可權時,通常有一條隱式的語句也可以賦予其他許可權。例如,如果賦予了訪問C:\的許可權,FileOPerminssion。就有一個也可以訪問C:\子目錄下面的隱式假設。如下面的程式碼:

  static void Main(string[] args)
        {

            CodeAccessPermission pa = new FileIOPermission(FileIOPermissionAccess.AllAccess,@"D:\");

            CodeAccessPermission pb = new FileIOPermission(FileIOPermissionAccess.Read, @"D:\tee"
); if(pb.IsSubsetOf(pa)) { Console.WriteLine("pb is a subset of permission"); } Console.ReadKey(); }

執行結果:

這裡寫圖片描述

下面介紹程式碼中使用的兩個類:FileIOPermission和CodeAccessPermission

控制檔案和資料夾的訪問許可權。 此類不能被繼承。

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述
這裡寫圖片描述

備註

此許可權的檔案 IO 訪問提供的以下四種類型之間是有區別 FileIOPermissionAccess:

  • Read︰ 對檔案或訪問該檔案,例如,其長度或上次修改時間有關的資訊的內容的讀取訪問許可權。
  • Write︰ 對檔案或更改檔案,例如其名稱的相關資訊的訪問許可權的內容的寫入訪問。 此外允許刪除和覆蓋。
  • Append︰ 可以寫入到檔案末尾。 不是能讀取。
  • PathDiscovery︰ 訪問許可權的路徑本身中的資訊。 這有助於保護敏感資訊在路徑中,如使用者名稱稱,以及有關路徑中顯示的目錄結構的資訊。 此值不會授予對檔案或資料夾路徑所表示的訪問。

所有這些許可權是獨立的這意味著對其中一個許可權並不意味著對另一種許可權。 例如, Write 許可權並不意味著權 Read 或 Append。 如果需要多個許可權,它們可以組合使用位或運算,如下面的程式碼示例中所示。 根據規範的絕對路徑; 定義檔案的許可權始終應使用規範的檔案路徑進行呼叫。
FileIOPermission 描述受保護的檔案和資料夾上的操作。 File 類幫助提供安全地訪問檔案和資料夾。 建立該檔案的控制代碼時執行的安全訪問許可權檢查。 通過執行操作可以在建立時檢查,安全檢查的效能影響降至最低。 開啟檔案發生一次,而可以讀取和寫入發生多次。 一旦開啟此檔案,不能進一步執行檢查。 如果該物件傳遞給不受信任呼叫方,它可能被誤用。 例如,檔案控制代碼應不儲存在具有較少許可權的程式碼可以訪問它們的公用全域性靜態物件。
FileIOPermissionAccess 指定可以對檔案或資料夾執行的操作。 此外,可以使用按位 OR 成複雜例項組合這些操作。
資料夾的訪問許可權意味著可以對包含的連結,以及訪問所有檔案和資料夾及其子資料夾中的所有檔案的訪問。 例如, Read 到 C:\folder1\ 的訪問許可權意味著 Read 訪問 C:\folder1\file1.txt、 C:\folder1\folder2\、 C:\folder1\folder2\file2.txt,等等。

CodeAccessPermission 成員

這裡寫圖片描述

這裡寫圖片描述
這裡寫圖片描述