【问题标题】:In Windows 7, "Run as Administrator" does not run as Administrator when UAC is turned off在 Windows 7 中,当 UAC 关闭时,“以管理员身份运行”不会以管理员身份运行
【发布时间】:2011-01-15 07:32:45
【问题描述】:

当我在 Windows 7 上运行我的 c# Windows 窗体应用程序时:

  • “用户”组中不属于管理员组的用户
  • 在关闭用户帐户控制的计算机上
  • 通过右键单击 EXE 并选择“以管理员身份运行”

这段代码:

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

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

【问题讨论】:

    标签: c# windows-7 uac


    【解决方案1】:

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

    【讨论】:

    • 为什么是安全漏洞? (假设用户必须输入管理员密码)
    • 嗯,是的。但令人惊讶的是,此时没有消息给用户?
    • @Matthew:用户不必输入管理员密码。您真正想要的是“以用户身份运行”命令,并让您的应用程序在管理员的用户上下文中运行。 @Duncan:不幸的是:是的。令人惊讶的是:我认为陪审团已经出局了! :)
    • try { My Stuff } catch (Exception e) { MessageBox.Show("You need to be an administrator to run as administrator."); }
    猜你喜欢
    • 1970-01-01
    • 2022-01-08
    • 2012-11-22
    • 1970-01-01
    • 2016-09-20
    • 2010-11-26
    • 2012-05-28
    • 2011-03-24
    • 2021-08-10
    相关资源
    最近更新 更多