2010-05-09 91 views
8

我正在使用以下簡單代碼將完全控制添加到目錄,但它不起作用。如何將完全控制權設置爲目錄?

 String dir_name = @"folder_full_path"; 
     DirectorySecurity dir_security = Directory.GetAccessControl(dir_name); 
     FileSystemAccessRule access_rule = new FileSystemAccessRule(@"AccountName", 
      FileSystemRights.FullControl, AccessControlType.Allow); 
     dSecurity.AddAccessRule(access_rule); 
     Directory.SetAccessControl(dir_name, dir_security); 

但這個代碼只設置特殊權限到目標文件夾。此代碼幾乎與MSDN sample相同。我正在爲了一個合理的解釋撓撓頭腦......希望有人能夠對我說點什麼。

非常感謝。

+4

如果你使用什麼樣的5參數的構造函數用於FileSystemAccessRule? http://msdn.microsoft.com/en-us/library/sfe70whw.aspx – 2010-05-09 15:51:03

+3

謝謝本。我現在可以用5參數構造函數完成它。但我不知道爲什麼3參數構造函數存在,如果它不工作? – smwikipedia 2010-05-11 07:11:38

回答

-3

:)轉身。

  • 創建一個目錄。

  • 分配權限。

  • 閱讀DirectorySecurity ACL並檢查它的外觀調試;)

瞧。

13

後的原ACL規則,我得到了它與下面的代碼工作的一些逆向工程:

IdentityReference everybodyIdentity = new SecurityIdentifier(WellKnownSidType.WorldSid, null); 

FileSystemAccessRule rule = new FileSystemAccessRule(
    everybodyIdentity, 
    FileSystemRights.FullControl, 
    InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, 
    PropagationFlags.None, 
    AccessControlType.Allow); 

可以將它有助於任何進一步的遊客:)

+0

謝謝,我相信這是5參數版本。 – smwikipedia 2012-07-09 02:42:56

+0

完美的作品,謝謝! – Despertar 2012-08-16 01:33:42

+1

WellKnownSidType的+1。我需要我的程序中的管理員帳戶。 – 010110110101 2012-09-02 03:09:38