【发布时间】:2012-11-22 13:57:55
【问题描述】:
我有一个 C# 应用程序需要允许用户更改 计算机名。这是一个非常特权的操作。如果用户以管理员身份运行应用程序(Windows 7,右键单击可执行文件,“以管理员身份运行”),我只能让它工作。很好,但是用户是管理员,那么他们为什么需要以管理员身份运行 AS?我已经试过好几次了。如果用户(管理员)尝试正常运行应用程序,它总是会失败。如果他们以“以管理员身份运行”运行它,它总是有效的。
如果答案是“它就是这样工作的,即使你是管理员也必须以管理员身份运行”,我的问题是如何检测它们是否以超级管理员权限运行?我找到了this,但它只是检查用户是否属于管理员用户组,我已经指出,这还不够(并引发空指针异常)。
我在这里遗漏了什么吗?我需要从另一个角度去接近它吗?
【问题讨论】:
-
听起来像是 UAC 的东西。这篇文章可能会有所帮助:serverfault.com/questions/446521/…
-
C#: Detect if running with elevated privileges?的可能重复项...检查第一个答案
-
谢谢,spender,但我在评论中链接到那篇文章并解释了为什么它还不够。我知道,乍一看,它看起来像个骗子。 ;)
-
另一个选项是在编译时将可执行文件标记为需要提升。我会挖出一个链接......aneef.net/2009/06/29/…
-
好的,我明白了。我看了另一个链接!提升运行整个应用程序会起作用,但您可以选择及时优化策略,只提升应用程序中真正需要提升的部分。