2010-02-10 217 views
1

当我运行我的C#Windows窗体应用程序在Windows 7:在Windows 7中,“以管理员身份运行”,当UAC被关闭不以管理员身份运行

  • 用户在“用户”组是不是在管理员组
  • 在其中用户帐户控制被关断
  • 以机器右击EXE并选择“作为管理员运行”

此代码:

WindowsPrincipal pricipal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); bool hasAdministrativeRight = pricipal.IsInRole(WindowsBuiltInRole.Administrator);

仍然返回false。这是预期的行为?

回答

2

我很肯定,如果用户不是管理员,则以管理员身份运行不会将该用户的该应用程序的上下文提升为管理员的上下文。这将是一个可怕的安全漏洞,并最终实现将用户作为普通用户的强制安全性。

+0

为什么它是一个安全漏洞? (假设用户必须输入管理员密码) – 2010-02-10 16:08:23

+0

嗯,是的。但令人惊讶的是,此时用户没有信息? – 2010-02-10 16:12:11

+1

@Mthethew:用户不必输入管理员密码。你真正想要的是“以用户身份运行”命令,并让你的应用程序在管理员的用户环境下运行。 @Duncan:不幸的是:是的。令人惊讶的是:我认为陪审团就是这样! :) – 2010-02-10 16:20:00

相关问题