我正在编写一个需要创建文件夹的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
中存储的目录一样?
这是一个完整的例外:
答案 0 :(得分:4)
我在我的电脑上做了一些测试,发现在添加域用户时,这有效:
Environment.UserDomainName + @"\Users"
对于本地计算机帐户,我必须这样做:
@".\Users"
由于您在家用PC上进行测试,我假设您不在域中并且正在尝试添加本地计算机用户组。
答案 1 :(得分:1)
也可以从外面输入组名,如下所示;
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);
}