程序如何要求管理员特权?
时间:2020-03-06 14:20:16 来源:igfitidea点击:
我正在使用vb.net开发应用程序。为了执行某些任务,应用程序需要计算机中的管理员权限。在程序执行过程中如何要求特权?
切换用户帐户以执行应用程序的一般方法是什么?换句话说,应用程序是否可以通过任意用户帐户运行?
解决方案
Internet上有几篇关于在Vista中开发提升的进程的文章,但是本质上,提升请求涉及在应用清单文件(可以是嵌入式的或者并行的)中以提升状态装饰.NET程序集和WIN32可执行文件。
关于问题,有一篇很棒的博客文章提供了我们可能需要的代码:
用于COM提升的.NET包装器
我尚未完成此操作,但我相信我们可以转到(在VS 2008中)"项目设置"->"应用程序"选项卡,然后单击"查看UAC设置"按钮。这将打开app.manifest文件。我认为其中包含一个标签,其中包含我们要查找的选项。我的有一些选择被注释掉,这应该让我们入门:
我们可以编辑位于项目设置中的UAC设置(在VB 2008中)。寻找那行说
<requestedExecutionLevel level =" asInvoker" uiAccess =" false" />
将level =" asInvoker"更改为
- level =" asInvoker"(与父进程相同的访问令牌)
level =" requireAdministrator
(需要完整的管理员)level =" highestAvailable"
(当前用户可用的最高特权)