我有一個C#控制檯應用程序正在創建一個目錄,然後嘗試爲該目錄提供修改訪問權給域用戶。該應用程序長時間工作正常,但突然間它開始在DirectorySecurity.SetAccessControl
方法上拋出UnauthorizedAcccesException
。當用戶擁有完全控制權時,在DirectorySecurity.SetAccesesControl上發生UnauthorizedAcccesException
我已經使用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;
}
有沒有人對我應該檢查什麼有什麼建議以確保我沒有遺漏任何東西?任何其他方式做到這一點?