winform c#,不确定为什么HKEY_CURRENT_USER注册表项修改需要提升

问题描述 投票:0回答:1

我有一个小应用程序,需要在注册表中更改一些东西并在启动时打开,为此,我需要以管理员身份打开应用程序。

如果应用程序需要管理员权限,我不希望每次都询问用户。

我尝试添加清单文件并包含以下行:

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

此外,应用程序应该在其用户不是管理员的站点上工作

有没有办法做这样的事情?谢谢您的帮助

c# winforms registry administration administrator
1个回答
1
投票

这听起来好像是在试图绕过密钥上的安全令牌。这根本不可能。

如果用户不是管理员,则不会让他们编辑受ACL保护的密钥,只允许管理员更改密钥。如果可能,那么整个安全系统就完全崩溃了。

如果您的应用需要管理员权限,这是您在清单中请求的权限,那么每次启动时都会提示您。没有解决这个完全禁用UAC的问题(如果有的话,应用程序只会绕过UAC并使其无用)。

如果您真的需要这样做,我的方法是在安装程序中使用自定义操作修改ACL,保护有问题的密钥以允许用户修改它。那么您首先不需要主应用程序拥有管理员权限。

© www.soinside.com 2019 - 2024. All rights reserved.