2010-09-02 97 views
3

如何在C#中自動執行以下手動步驟?如何從C#設置文件夾ACL#

  • 右鍵單擊Windows資源管理器中的文件夾;

    Properties -> Security -> Advanced -> Edit

  • 取消選中「包括可從該對象的父項的繼承權限」,然後單擊刪除。

  • 單擊添加,選擇一個組並授予它修改權限。

我發現this article,它看起來像正是我需要的,但我沒有和不能找到Microsoft.Win32.Security

回答

3

檢查下面的代碼:

DirectoryInfo dInfo = new DirectoryInfo(strFullPath); 

DirectorySecurity dSecurity = dInfo.GetAccessControl(); 

//check off & copy inherited security setting 
dSecurity.SetAccessRuleProtection(true, true); 

dInfo.SetAccessControl(dSecurity); 

http://msdn.microsoft.com/en-us/library/system.security.accesscontrol.objectsecurity.setaccessruleprotection.aspx

這對於在文件夾上設置權限:

http://www.redmondpie.com/applying-permissions-on-any-windows-folder-using-c/

1

我不知道那個,但你應該可以通過System.Security.AccessControl命名空間中的DirectorySecurity類來完成。

我假設你可能也想看看InheritanceFlags枚舉。

+0

謝謝你的回答,ID已經接受了兩個,如果我能 – 2010-09-02 11:44:40

+0

@Andrew:沒問題,Aneef明顯地把更多的精力投入到他的工作中,使其成爲一個更全面的答案,被接受。 – 2010-09-02 12:04:56