C# 当用户拥有完全控制权时,DirectorySecurity.SetAccessControl上的UnauthorizedAccessException
我有一个C#控制台应用程序,它正在创建一个目录,然后试图将目录的修改访问权授予域用户。应用程序已经运行了很长一段时间,但突然它开始在C# 当用户拥有完全控制权时,DirectorySecurity.SetAccessControl上的UnauthorizedAccessException,c#,security,directory,C#,Security,Directory,我有一个C#控制台应用程序,它正在创建一个目录,然后试图将目录的修改访问权授予域用户。应用程序已经运行了很长一段时间,但突然它开始在DirectorySecurity.SetAccessControl方法上抛出UnauthorizedAccessException 我已使用WindowsIdentity.GetCurrent获得当前用户帐户,并确认它是我期望的帐户(它模拟了超级用户,因为登录用户没有足够的访问权限)。我已经检查了超级用户在创建的目录上的权限,他们拥有完全控制权 private D
DirectorySecurity.SetAccessControl
方法上抛出UnauthorizedAccessException
我已使用WindowsIdentity.GetCurrent获得当前用户帐户,并确认它是我期望的帐户(它模拟了超级用户,因为登录用户没有足够的访问权限)。我已经检查了超级用户在创建的目录上的权限,他们拥有完全控制权
private DirectoryInfo CreateFolderWithOpenAccess(string directoryPath)
{
DirectoryInfo directory = Directory.CreateDirectory(directoryPath);
DirectorySecurity directorySecurity = directory.GetAccessControl();
if (!HasModifyAccess(directory))
{
directorySecurity.AddAccessRule(
new FileSystemAccessRule(
Settings.Default.DomainUsers,
FileSystemRights.Modify,
InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
PropagationFlags.None,
AccessControlType.Allow
)
);
directory.SetAccessControl(directorySecurity);
}
return directory;
}
有人对我应该检查什么以确保我没有遗漏任何东西有什么建议吗?有其他方法吗?我与IT部门的同事进行了检查,他们提醒我,正在使用网络文件共享访问我创建的文件夹。事实证明,即使该帐户对共享中的所有文件和文件夹具有“完全控制”权限,但它也无法访问更改权限,因为它在共享级别没有“完全控制”权限。原因是数据服务器上的文件夹被洗牌,其中一名IT人员重新创建了共享,但没有重新创建帐户的“完全控制”权限。共享权限可通过以下方式找到: