【问题标题】:C# WPF Application Prompts With UAC Password For Standard UserC# WPF 应用程序使用标准用户的 UAC 密码提示
【发布时间】:2020-02-29 09:16:48
【问题描述】:

我真的很难找到以标准用户身份运行我的 c# WPF 应用程序的解决方案。我得到一个 UAC 对话框,它会弹出并要求输入用户名和密码。

这是我到目前为止所做的。

  • 将 Manifest 文件添加到应用程序到具有以下级别的应用程序。也试过highestAvailable

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

  • 删除我的应用程序中我认为可能触发问题的任何内容,因为之前将日志文件 (Log4Net) 写入 Program Files\My Application 下的 LogFiles 目录。标准用户确实有权访问应用程序目录(用于测试,因为该用户可以创建文件和目录)。现在我没有文本文件日志记录。我也在写 HLCU 注册表项,但我已将所有这些都取出来进行测试,即使我认为 HKCU 不应该触发提示。

  • 根据我在启发式检查中所做的阅读,检查了我的应用程序名称等实例,例如设置、安装程序等。一切都好。

该应用程序非常标准。 C# WPF 网络框架 4.5.1 DevExpress。功能几乎只是一个 GUI,它可以访问 MySQL 数据库并通过 TCP 与网络上的服务进行通信。

真正奇怪的一件事是,如果我进入应用程序的 .exe.config 文件,在某处放置一个空格然后保存文件,当我打开应用程序时,我没有收到 UAC 提示。重新启动 PC 并以该用户身份登录,我得到 UAC 提示。取消提示,再次运行并再次获取提示(测试)。再次编辑配置文件,输入一个空格,然后退格并保存。我打开应用程序,但没有收到 UAC 提示。

真的开始让我发疯了。

如果有人有任何提示或指示,将不胜感激。

谢谢,

丹尼尔。

【问题讨论】:

  • 你在这里看到这个答案了吗? stackoverflow.com/a/5276770/507950
  • 除非他们仍在使用 xp,否则用户无法更改程序文件中的任何内容。 Uac 会阻止他们在那里写任何东西,包括你的代码试图写的日志文件、配置或设置。任何类似的东西,把它放在 appdata.social.technet.microsoft.com/wiki/contents/articles/…
  • 是的,我查看了其他回复,但不想或不需要以管理员身份运行。我已经从程序文件目录中删除了所有内容,但问题仍然存在。我将尝试将 app.config 文件移到程序文件之外,看看是否能解决问题

标签: c# wpf uac


【解决方案1】:

如果您确实正确地将条目添加到应用程序的清单中:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

那么唯一的解释就是应用程序的执行级别被缓存了;并且重新启动会清除它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-07
    • 1970-01-01
    • 2012-05-24
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 2013-09-10
    相关资源
    最近更新 更多