windows权限和uac托管的.NET
考虑一个.NET托管应用程序。无需特别许可即可向HKCU添加密钥,对吗 无论用户是标准用户还是管理员,都不需要特殊权限设置windows权限和uac托管的.NET,.net,windows,permissions,uac,account,.net,Windows,Permissions,Uac,Account,考虑一个.NET托管应用程序。无需特别许可即可向HKCU添加密钥,对吗 无论用户是标准用户还是管理员,都不需要特殊权限设置 如果应用程序尝试向HKLM添加密钥,会发生什么情况?用户是否需要是管理员?UAC提示是否出现?修改HKCU不需要特殊权限,任何用户都可以修改自己的注册表分支 如果您试图修改HKLM,则需要具有管理员权限。如果您是标准用户,RegCreateKey操作将失败1。UAC提示符不会仅仅因为应用程序试图写入受保护的位置而出现 这与您在Windows XP中看到的行为相同。操作将失败
如果应用程序尝试向HKLM添加密钥,会发生什么情况?用户是否需要是管理员?UAC提示是否出现?修改HKCU不需要特殊权限,任何用户都可以修改自己的注册表分支 如果您试图修改HKLM,则需要具有管理员权限。如果您是标准用户,
RegCreateKey
操作将失败1。UAC提示符不会仅仅因为应用程序试图写入受保护的位置而出现
这与您在Windows XP中看到的行为相同。操作将失败,访问被拒绝
如果您的应用程序需要写入HKLM,则您可以:
- 将应用程序标记为始终以管理员身份运行(错误)
- 使用
runas动词启动应用程序的副本,以便用户可以临时提升以执行需要管理访问权限的操作(更好)ShellExecute
- 不写信给HKLM(最佳)