c# - 设置整个组对目录的访问权限

标签 c# windows security io filesystems

我正在编写一个 C# 应用程序,需要创建一个文件夹,然后授予 DOMAIN\Users 完全权限。当我尝试传入 Environment.UserDomainName + @"\Users" 时,它会抛出 System.Security.Principal.IdentityNotMappedException。目前,我有这个代码:

DirectoryInfo dirInfo = new DirectoryInfo(path);
DirectorySecurity dirSec = dirInfo.GetAccessControl();

// All users should have full control.
dirSec.AddAccessRule(new FileSystemAccessRule(Environment.UserDomainName + @"\Users", FileSystemRights.FullControl, AccessControlType.Allow));

dirInfo.SetAccessControl(dirSec);

如何才能使其“起作用”,例如允许用户完全控制存储在 path 中的目录?

这是完整的异常(exception):

Exception

最佳答案

我在我的电脑上做了一些测试,发现添加域用户时有效:

Environment.UserDomainName + @"\Users"

对于本地计算机帐户,我必须这样做:

@".\Users"

由于您是在家用电脑上进行测试,因此我假设您不在域中,并且正在尝试添加本地计算机用户组。

关于c# - 设置整个组对目录的访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37979501/

相关文章:

c# - 一串重复字符的正则表达式,最后还有另一个可选字符

python - 在 Windows 上运行 "lektor server"命令时出现问题

windows - 检测键盘或鼠标事件是否由软件触发

security - "invalid %-encoding"和 "invalid byte sequence in UTF-8"错误正在急剧增加

python - vscode-python pipelinenv 自动运行行为是否存在安全风险?

php - CodeIgniter 中的 MySQL 安全性

c# - 类型的对象无法应用于期望类型为system.windows.data.ivalueconverter的属性

c# - 如何使用网站集检查用户的权限?

c# - 在循环中或循环外实例化 Random

java - 如何在 Windows 上设置 Selenium 网格 - 作为 "service"