首页 > 解决方案 > 如果我拒绝自己,但我有管理员权限,如何获得文件权限?

问题描述

假设我创建文件abc.txtUser1

我将该文件的所有权授予给User2然后在安全选项卡中我给deny读/写/执行给User1

现在我想以编程方式更改它,因此User1将成为所有者并再次读取/写入/执行(我正在运行应用程序User1!)

我正在运行具有Administrator权限的应用程序,问题是我什至无法这样做,File.GetAccessControl(path)因为

System.UnauthorizedAccessException:尝试执行未经授权的操作。

但是,当我通过 GUI 单击它时 -> 右键 -> 属性 -> 安全 -> 高级

有按钮(需要管理员权限)

单击继续以尝试使用管理员权限执行该操作

并且

更改文件所有者(需要管理员权限)

我可以通过 GUI 轻松完成

但是,我应该如何以编程方式重新获得我的权限?

这是我当前的代码:

//Get Currently Applied Access Control
var fileSecurity = File.GetAccessControl(file.FullName);

//Update it, Grant Current User Full Control
var cu = WindowsIdentity.GetCurrent().User;
fileSecurity.SetOwner(cu);
fileSecurity.SetAccessRule(new FileSystemAccessRule(cu, FileSystemRights.FullControl, AccessControlType.Allow));

//Update the Access Control on the File
File.SetAccessControl(file.FullName, fileSecurity);

标签: c#windows-10.net-framework-version

解决方案


推荐阅读