【发布时间】: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 文件移到程序文件之外,看看是否能解决问题