c# - 如果我拒绝自己,但我有管理员权限,如何获得文件权限?
问题描述
假设我创建文件abc.txt
为User1
我将该文件的所有权授予给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);
解决方案
推荐阅读
- wpf - 设置 AllowTransparency="False" 时 Telerik Radwindow 渲染不完整
- python - 在不使用 Matplotlib 的情况下测试点是否在椭圆内?
- pywinauto - pywinauto/examples/uninstall_7zip.py 在 Windows 10 上不起作用
- javascript - li 元素溢出 Card 容器并增加父容器以适应自身
- pyspark - 如何在 PySpark UDF 中进行模糊匹配?
- javascript - Ionic 5:有没有办法结合标签和侧边菜单
- python - 我可以在开发 Python 扩展模块时使用最新的 C2x 语言功能吗?
- google-cloud-shell - -bash:历史:/home/.bash_history:无法创建:没有这样的文件或目录
- java - 如何使用符号验证android中的用户名和密码?
- c - 如何使用匿名联合在另一个结构中定义 typedef 结构?