2

我写了一个 WPF 应用程序。当它安装在客户端机器上时,系统会提示他们输入用户名和密码,以便他们拥有使用该应用程序的管理员权限。

我需要管理员权限,因为我的应用程序打开端口并将文件写入文件系统。

是否可以允许任何用户在不提示输入管理员用户名和密码的情况下运行应用程序,并提升应用程序以使用管理员权限运行?

谢谢

4

1 回答 1

0

安装您的应用程序时,如果安装程序已标记为管理员执行,它将提示管理员权限。这通常仅在您想要安装到可供多个用户使用的位置时才需要,例如在 Program Files 文件夹层次结构中。默认情况下,MSI 将引发 UAC 提示,但使用 WIX 制作不引发 UAC 提示的 MSI很容易。

当您的应用程序(由没有管理员权限的用户)运行时,如果应用程序本身已标记为管理员执行,它将要求管理员权限。这部分由您控制,但可以由客户端计算机上的用户覆盖。

写入文件系统文件夹的应用程序不需要管理员权限,只要运行该应用程序的用户有权访问这些文件夹。通常,您可以通过写入每个用户都可以访问的位置来完成这项工作。

但是,我相信如果应用程序所做的不仅仅是查询统计信息,那么打开端口确实需要管理员权限。

如果您的应用确实需要管理员权限才能运行,并且您不希望非管理员用户在程序执行期间看到 UAC 提示,那么我建议您将应用分为两部分。

第一部分是在特权用户(如 LocalSystem)下运行并配置为与桌面程序交互的 Windows 服务。此服务执行所有与管理员相关的任务,并且需要由请求管理员权限的安装程序进行设置。

第二部分是不做任何特权的 WPF 程序。如果将此 WPF 程序标记为不需要提升,则最终用户在运行它时将永远不会看到 UAC 提示,因为所有特权工作都是由始终运行的服务完成的。

于 2011-09-12T09:34:42.050 回答