c# - C# Windows10 - 仅向 1 个特定用户和管理员授予目录访问权限?
问题描述
所以我试图在本地驱动器上创建一个新文件夹,并授予它特定的权限。主要规则集是: - 管理员拥有完全访问权限 - 特定用户(我们称之为“Robinson”)拥有完全访问权限 - 计算机上的其他普通用户将无权访问它。
到目前为止,我用我的代码做到了这一点:
string path = @"C:\testFolder";
DirectorySecurity ds = Directory.GetAccessControl(path);
SecurityIdentifier si_Admin = new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid,null);
ds.AddAccessRule(new FileSystemAccessRule(si_Admin, FileSystemRights.FullControl, AccessControlType.Allow));
ds.AddAccessRule(new FileSystemAccessRule("Robinson", FileSystemRights.FullControl, AccessControlType.Allow));
SecurityIdentifier si_OtherUsers = new SecurityIdentifier(WellKnownSidType.BuiltinUsersSid, null);
ds.AddAccessRule(new FileSystemAccessRule(si_OtherUsers, FileSystemRights.Delete, AccessControlType.Deny));
Directory.SetAccessControl(path, ds);
您可能会注意到,在第 3 次 AddAccessRule 中,我只是在测试删除其他用户的权限。不幸的是,这也拒绝了对管理员和罗宾逊的任何删除……我最终得到了一个无法删除的文件夹!
那么有人知道我错过了什么吗?还有我怎么能解决不可移动文件夹的情况?
提前致谢!
解决方案
推荐阅读
- node.js - 如何在 Discord [Discord.js] 中找到回复的消息内容
- c - 您如何在 C 多处理中等待恰好两个信号?
- javascript - 为什么我的数据库中的字幕没有更新?
- python - 用numpy反转分数矩阵
- reactjs - 当我在其中更改表单的值时,手风琴关闭
- c# - 如何将 DbContext 实现为接口?最终目标是使用 Moq 进行单元测试
- coldfusion - 同一程序中的coldfusion两个cfmail崩溃
- c - 将 ELF 二进制文件转换为 .o 文件
- java - spring data jpa批量处理大结果集
- ssh - ssh-agent 不会在 CentOS 7 上保持活跃