簡體   English   中英

以編程方式向文件夾添加權限

[英]Programmatically Adding Permissions to a Folder

我有一個問題,我需要為所有經過身份驗證的用戶添加對文件夾的訪問權限,以存儲與應用程序相關的設置。 我發現這可以通過以下代碼完成...

var Info = new DirectoryInfo(settingsdir);
var Security = Info.GetAccessControl(AccessControlSections.Access);

Security.AddAccessRule(
    new FileSystemAccessRule(
        "Authenticated Users", FileSystemRights.Modify,
        InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
        PropagationFlags.None,
        AccessControlType.Allow));

我發現的問題是“Authenticated Users”是Windows上的系統帳戶,但是在Windows的不同語言版本上,此帳戶名被翻譯,例如在德國,該帳戶被稱為“Authentifizierte Benutzer”。 有沒有辦法知道這個帳戶的正確名稱(顯而易見的是通過每種語言並找到正確的帳戶名稱)。

我建議你使用Well Known SID列表(參見http://support.microsoft.com/kb/243330 )。 經過身份驗證的用戶始終為SID:S-1-5-11。 如果你使用它,它應該是語言不可知的(但我沒有測試過)。

創建一個SecurityIdentifier並使用它:

var sid = new SecurityIdentifier(WellKnownSidType.AuthenticatedUserSid, null); 

Security.AddAccessRule(
   new FileSystemAccessRule(
       sid,
       FileSystemRights.Modify,
       InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
       PropagationFlags.None,
       AccessControlType.Allow));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM