簡體   English   中英

設置目錄和子項的權限

[英]Set permissions for directory and child items

我的程序復制一些目錄,子目錄和文件從服務器到本地計算機。 我需要,每個本地用戶都可以修改它(編輯/刪除/刪除/重命名)。 但現在它只能做主人。 如何為復制的目錄及其子項設置必要的權限? 我嘗試這樣的代碼:

String account = Path.Combine(Environment.MachineName, "Users");
FileSystemRights rights = FileSystemRights.FullControl;
AccessControlType controlType = AccessControlType.Allow;
DirectorySecurity security = local_commonDir.GetAccessControl(AccessControlSections.Access);
FileSystemAccessRule rule = new FileSystemAccessRule(account, rights, controlType);
security.AddAccessRule(rule);
local_commonDir.SetAccessControl(security);

但是我得到了例外:

某些或屬性的鏈接無法轉換。

如果我添加缺少訪問控制,則不存在錯誤。 我認為因為“用戶”已經存在而收到錯誤。 如何改變現有權利?

我找到了解決方案

WindowsIdentity id = WindowsIdentity.GetCurrent();
var sid = new SecurityIdentifier(WellKnownSidType.AccountDomainUsersSid, id.User.AccountDomainSid);
var security = dir.GetAccessControl();
var rule = new FileSystemAccessRule(sid,
    FileSystemRights.FullControl,
    InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
    PropagationFlags.None,
    AccessControlType.Allow);
security.AddAccessRule(rule);
dir.SetAccessControl(security);

暫無
暫無

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

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