问题描述
目标
目标是触发UAC对话框,并允许该应用临时提升特权以执行需要管理员访问权限的活动,但不需要整个应用程序以提升的特权运行。
进程具有固定的权限,对吧?
如果我没记错的话,操作系统级别的“进程”模型要求进程以与进程开始时相同的特权完成(即,无法更改)。
因此,“提升”的唯一方法是开始一个新过程。没问题-进程可以执行所需的操作,然后根据需要进行进程间通信。但是,使过程开始的“现代.NET方法”是什么?
声明性选项 still 是否存在?
有 old 条(例如VS 2012的C# Corner article)讨论了在app.manifest
中添加声明性安全条件的问题:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
...但是,我无法按照文章中的说明进行操作...完全在VS 2019中添加一个应用程序清单 似乎不是(VS 2019,。 NET Framework 4.7.2,控制台应用程序):
还是编程选项是唯一的方法?
我相信我可以使用System.Diagnostics.processstartinfo
指定.verb = "runas"
来启动该过程。有更好的选择吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)