我遇到了一个非常烦人的问题,我花了一段时间才解决它。由于 99% 的互联网都告诉我这是不可能的,而且我在 stackoverflow 上找不到答案,所以我决定将其发布在这里。
我试图更改 Windows 机器中文件夹/文件的所有权。这不是什么大问题,因为 DirectorySecurtiy 有一个很好的函数:“SetOwner()”。我让它为我的当前帐户工作,但我无法让它为其他人工作。每次我试图授予其他人所有权时,我都会收到此错误:“不允许安全标识符成为该对象的所有者”。
// Get folder or creates if not exists
DirectoryInfo dInfo = Directory.CreateDirectory(folderPath);
// Get user
IdentityReference user = new NTAccount(username);
// Set owner
DirectorySecurity dSecurity = dInfo.GetAccessControl();
dSecurity.SetOwner(user);
dInfo.SetAccessControl(dSecurity);
因此,如果我想授予自己所有权,但如果我想授予其他人所有权,则此代码确实有效。该怎么办?
收到一只叮咚
相关分类