【发布时间】:2011-09-18 08:00:51
【问题描述】:
我正在开发一个安装程序,我想写入一个只有管理员可以访问的文件夹。因此,我需要显示 UAC 对话框并以管理员身份进行身份验证。我知道我可以通过从安装程序 GUI 运行一个单独的可执行文件来做到这一点,但我更喜欢一个允许我在应用程序中随时进行身份验证的解决方案。这在 .NET 中可行吗?
【问题讨论】:
标签: .net vb.net uac windows-authentication
我正在开发一个安装程序,我想写入一个只有管理员可以访问的文件夹。因此,我需要显示 UAC 对话框并以管理员身份进行身份验证。我知道我可以通过从安装程序 GUI 运行一个单独的可执行文件来做到这一点,但我更喜欢一个允许我在应用程序中随时进行身份验证的解决方案。这在 .NET 中可行吗?
【问题讨论】:
标签: .net vb.net uac windows-authentication
您必须为Manifest 文件运行具有此配置的新进程:
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" />
</requestedPrivileges>
</security>
【讨论】:
作为启动提升新进程的替代方法,您可以创建提升的新 COM 对象。
一些安装程序使用类似于您尝试执行的方法。 foobar2000 installer 就是一个例子。在第一个屏幕上,它会询问标准(所有用户) 或便携式设置在哪里。如果选择了标准,它会提示提升并重新启动。
因此,您最简单的选择是从用户那里收集数据,然后以管理员身份重新启动自身或另一个可执行文件,以执行实际工作,通过用户的选择传递参数。
【讨论】: