.NET Framework桌面应用程序如何获得提升的特权?

问题描述

目标

目标是触发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,控制台应用程序):

No option to add a manifest

还是编程选项是唯一的方法

我相信我可以使用System.Diagnostics.processstartinfo指定.verb = "runas"来启动该过程。有更好的选择吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)