C# 修改现有的访问控制条目
我在FileSystemRights解释中犯了一个逻辑错误,这导致无论输入什么,它总是应用读取权限。 我正在制作一个ps cmdlet,它将提供一个用户名列表,并修改与用户同名的文件夹的权限。根据我的测试,该脚本将为用户创建新的特殊acl条目,用于允许或拒绝条目,但如果条目已经存在,则不会修改该条目。也就是说,如果用户已经具有读访问权限,而我尝试授予写访问权限,则不会更改条目。我不确定在不完全删除旧权限的情况下如何修改现有权限C# 修改现有的访问控制条目,c#,.net,windows,C#,.net,Windows,我在FileSystemRights解释中犯了一个逻辑错误,这导致无论输入什么,它总是应用读取权限。 我正在制作一个ps cmdlet,它将提供一个用户名列表,并修改与用户同名的文件夹的权限。根据我的测试,该脚本将为用户创建新的特殊acl条目,用于允许或拒绝条目,但如果条目已经存在,则不会修改该条目。也就是说,如果用户已经具有读访问权限,而我尝试授予写访问权限,则不会更改条目。我不确定在不完全删除旧权限的情况下如何修改现有权限 DirectoryInfo diDirInfo =
DirectoryInfo diDirInfo = new DirectoryInfo(FolderName);
DirectorySecurity dsDirSecurity = diDirInfo.GetAccessControl();
//These just interpet the objects for the rights and the allow/deny entries from the command line
FileSystemRights FSR = genFSR();
AccessControlType ACT = genAct();
dsDirSecurity.AddAccessRule(new FileSystemAccessRule(UserName, FSR, ACT));
diDirInfo.SetAccessControl(dsDirSecurity);
我尝试修改AccessRule,得到了相同的行为
FileSystemAccessRule fsaRule = new FileSystemAccessRule(UserName, FSR, ACT);
dsDirSecurity.ModifyAccessRule(AccessControlModification.Add, fsaRule, out modified);
使用
ModifyAccessRule
代替AddAccessRule
请参见使用
ModifyAccessRule
而不是AddAccessRule
请参见此powershell如何?如果标记错误,请抱歉。我正在用c#制作一个pscmdlet,这有关系吗?读到它看起来不是同一个问题。该脚本正在以管理员身份运行,并且在第一次运行时应用了权限。但是,如果我尝试更改,即首先运行grant read,然后尝试更改为modify或write,则不会将它们从read.Ok更改为read.Ok。很抱歉,我的FileSystemRights定义中有一个输入错误,导致它无论键入什么都应用读取权限。很抱歉,如果这造成了任何混乱。这个powershell如何?如果标记错误,很抱歉。我正在用c#制作一个pscmdlet,这有关系吗?读到它看起来不是同一个问题。该脚本正在以管理员身份运行,并且在第一次运行时应用了权限。但是,如果我尝试更改,即首先运行grant read,然后尝试更改为modify或write,则不会将它们从read.Ok更改为read.Ok。很抱歉,我的FileSystemRights定义中有一个输入错误,导致它无论键入什么都应用读取权限。如果这引起了任何混乱,我很抱歉。