为目录中的整个组设置访问权限

Set Access Permissions for a Whole Group on a Directory

我正在编写一个 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);

如何实现 "work",允许用户完全控制存储在 path 中的目录?

这是完整的例外:

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

Environment.UserDomainName + @"\Users"

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

@".\Users"

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

组名也可以从外部输入,如下所示;

public static void SetGroupUsersPermission(string Path,string groupname)
{
    DirectoryInfo dirInfo = new DirectoryInfo(Path);

    DirectorySecurity dirSec = dirInfo.GetAccessControl();

     dirSec.AddAccessRule(new FileSystemAccessRule(Environment.UserDomainName + @"\" +
     groupname, FileSystemRights.FullControl, AccessControlType.Allow));

     dirInfo.SetAccessControl(dirSec);
}