c#通过app.manifest使程序以管理员身份运行

2019-12-26 11:09:58丽君


highestAvailable: 这个是以当前用户可以获得的最高权限运行。

requireAdministrator: 这个是仅以系统管理员权限运行。

找到<requestedExecutionLevel  level="asInvoker" uiAccess="false" />
把其改为<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

这时候修改完成,按下F5进行调试,通常会收到如下的错误提示:【ClickOnce 不支持请求执行级别“requireAdministrator”】。

事情好像发生了相互矛盾,上面开启【ClickOnce】便自动创建了app.manifest,现在修改了app.manifest却提示:ClickOnce 不支持请求执行级别“requireAdministrator”。

解决方法是:只要把【启用ClickOnce安全设置】不勾选就可以了。

如果操作步骤正确,按下F5进行调试,会弹出如下的提示框,VS具有提升的权限。
 

c#通过app.manifest使程序以管理员身份运行


这样我们编写的应用程序在运行后,就会首先弹出这样一个提示框 , 点【Yes】后,程序才可以继续运行,并且获得系统管理员的权限。

方法2:

为工程项目添加一个类,应用程序清单文件(app.manifest)。


c#通过app.manifest使程序以管理员身份运行


然后可以看到app.manifest的位置不在Properties属性里了,变成在引用里了,其节点内容也少了一些。

c#通过app.manifest使程序以管理员身份运行


剩下的方法和上面相同。这样跳过了【启用ClickOnce安全设置】这步,直接执行,不会出错了。