【问题标题】:Run WinForms application without administrator rights?在没有管理员权限的情况下运行 WinForms 应用程序?
【发布时间】:2015-06-17 10:25:10
【问题描述】:

我创建了一个 Windows 窗体应用程序来执行一些功能。问题是当我部署应用程序时:

  1. 如果我使用 ClickOnce 进行部署,那么一切正常。安装后,winforms 应用程序无需管理员密码即可运行。
  2. 如果我使用 Visual Studio 安装项目进行部署并创建 MSI 设置,则安装后每次运行都需要管理员密码。

我想使用 Visual Studio Setup Project(MSI) 进行部署,但不希望软件要求提升权限。

MSI 安装不要求输入密码,但安装的程序会要求输入密码。

【问题讨论】:

  • 如果您安装为 MSI 设置,您需要管理员权限才能安装,但您不需要管理员权限来运行程序。您能否澄清一下程序会自动提示输入管理员密码,您没有嵌入式 UAC 清单,并且 exe 名称不包含 setup 或 install。
  • 我遇到了这个问题,因为应用程序的快捷方式在其属性中设置了“以管理员身份运行”选项。
  • @ThorstenDittmar 我找了那个,但快捷方式和 exe 都要求管理员权限。
  • 什么意思?是否在属性中选中了“以管理员身份运行”复选框?那么这就是问题所在。在这种情况下,您需要弄清楚为什么会这样。默认情况下未设置它们。
  • 不。两者都没有检查。

标签: c# .net winforms visual-studio-setup-proje


【解决方案1】:

你需要合作

UAC 提升权限

。看看这个 Ms Documentation link

这个项目还用 UAC example 进行了一些研发

希望对你有帮助

【讨论】:

    【解决方案2】:

    基本上,您需要编辑(或添加,如果您还没有)一个 app.manifest 文件,然后使用 requestedExecutionLevel 来订购所需的执行上下文。

    MSDN了解更多信息

    【讨论】:

    • 您不必这样做,因为默认情况下应用程序不需要提升权限。
    【解决方案3】:

    您需要创建一个应用程序清单 (UAC) 并将其嵌入到您的应用程序中,如 here 所述。如果您不想这样做,ClickOnce 可能是一个解决方案。

    MSDN 在这个话题上有一些有用的information,具体来说:

    对用户计算机的影响。使用 Windows Installer 部署,应用程序通常依赖于共享组件,可能 版本冲突;使用 ClickOnce 部署,每个应用程序都是 自包含,不会干扰其他应用程序。

    安全权限。 Windows Installer 部署需要 管理权限,只允许有限的用户安装; ClickOnce 部署使非管理用户能够安装和 只授予那些必要的代码访问安全权限 应用程序。

    【讨论】:

    • 通常,应用程序在没有提升权限的情况下运行。如果您希望应用程序以提升的权限运行,则必须创建清单。
    猜你喜欢
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    相关资源
    最近更新 更多