.NET(C#):使用ObjectSecurity.SetAccessRuleProtection保留存取控制資料

來源:互聯網
上載者:User

由於Windows存取控制是可以被繼承的,所以當一個安全性實體從一個位置被移動到另一個位置,他的存取控制是可能因此而被影響的。為了能夠讓一個安全性實體的存取控制保持現有資料而又不會因為路徑改變而繼承目標路徑的控制選項。可以使用ObjectSecurity.SetAccessRuleProtection方法。注意ObjectSecurity類型在System.Security.AccessControl命名空間內,並有ObjectSecurity還有SetAuditRuleProtection方法對應系統存取控制清單(SACL)。

 

SetAccessRuleProtection方法的參數是兩個bool。第一個bool指定是否禁止繼承。第二個bool指定是否保留繼承下來的存取控制。當然如果第一個參數為false(允許繼承),那第二個參數的值可省略因為總是會保留繼承的。

 

最後用代碼示範將一個檔案複製到另一個位置後保留源檔案的繼承選項並禁止繼承目標目錄的繼承選項:

//+ using System.IO;

//+ using System.Security.AccessControl;

static void Copy(string src, string dest)

{

    File.Copy(src, dest);

    FileSecurity security = File.GetAccessControl(src);

    //設定:不允許繼承,保留現有繼承的

    security.SetAccessRuleProtection(true, true);

    File.SetAccessControl(dest, security);

}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.