C# 在Windows 7中,“在;“以管理员身份运行”;UAC关闭时不以管理员身份运行
在Windows 7上运行我的c#Windows窗体应用程序时,使用:C# 在Windows 7中,“在;“以管理员身份运行”;UAC关闭时不以管理员身份运行,c#,windows-7,uac,C#,Windows 7,Uac,在Windows 7上运行我的c#Windows窗体应用程序时,使用: “用户”组中不在Administrators组中的用户 在关闭用户帐户控制的计算机上 通过右键单击EXE并选择“以管理员身份运行” 此代码: WindowsPrincipal=新的WindowsPrincipal(WindowsIdentity.GetCurrent()); bool hasAdministrativeRight=pricipal.IsInRole(WindowsBuiltInRole.Administ
- “用户”组中不在Administrators组中的用户
- 在关闭用户帐户控制的计算机上
- 通过右键单击EXE并选择“以管理员身份运行”
WindowsPrincipal=新的WindowsPrincipal(WindowsIdentity.GetCurrent());
bool hasAdministrativeRight=pricipal.IsInRole(WindowsBuiltInRole.Administrator);
仍然返回false。这是预期的行为吗?我很确定,如果用户不是管理员,“以管理员身份运行”不会将该应用程序的用户上下文提升为管理员上下文。这将是一个可怕的安全漏洞,最终会强制用户保持正常用户的安全性。为什么这是一个安全漏洞?(假设用户必须输入管理员密码)是的。但令人惊讶的是,此时没有向用户发送消息?@Matthew:用户不必输入管理员密码。您真正想要的是“以用户身份运行”命令,并让您的应用程序在管理员的用户上下文中运行@邓肯:不幸的是:是的。令人惊讶:我想陪审团已经出局了!:)
尝试{My Stuff}catch(异常e){MessageBox.Show(“您必须是管理员才能以管理员身份运行”);}