以管理员身份验证?

时间:2011-06-19 22:55:07

标签: .net vb.net uac windows-authentication

我正在开发一个安装程序,我想写一个只供管理员访问的文件夹。因此,我需要显示UAC对话框并以管理员身份进行身份验证。我知道我可以通过从安装程序GUI运行一个单独的可执行文件来实现这一点,但我宁愿一个允许我在应用程序中随时进行身份验证的解决方案。这在.NET中是否可行?

3 个答案:

答案 0 :(得分:3)

您无法更改权限级别中间进程,一旦进程启动它就会停留在该权限级别。您必须使用提升的权限启动单独的进程,并使用IPC与其进行通信以更新GUI。

如果您正在编写安装程序,最好的方法是将安装程序自己的应用程序清单标记为管理权限本身,以便它在启动时请求管理员权限,因为每次都需要它。

答案 1 :(得分:0)

您必须使用此配置为Manifest文件运行新进程:

<security>
  <requestedPrivileges>
    <requestedExecutionLevel level="requireAdministrator" />
  </requestedPrivileges>
</security>

答案 2 :(得分:0)

作为启动新进程的替代方法,您可以创建一个新的COM对象。


某些安装程序使用的方法与您尝试的方法类似。一个例子是foobar2000 installer。在第一个屏幕上,它询问标准(所有用户)或便携式设置的位置。如果选择标准,则会提示提升并重新启动。

因此,您最简单的选择是从用户收集数据,然后重新启动自身或其他可执行文件作为管理员来执行实际作业,并通过用户的选择传递参数。