我需要测试应用程序(用C#编写,运行os Windows XP / Vista / 7)是否以管理员身份运行(如右键单击.exe - >以管理员身份运行,或在Compability中以管理员身份运行) “属性”下的选项卡。
我用Google搜索并搜索了StackOverflow,但我找不到可行的解决方案。
我的最后一次尝试是:
if ((new WindowsPrincipal(WindowsIdentity.GetCurrent()))
.IsInRole(WindowsBuiltInRole.Administrator))
{
...
}
答案 0 :(得分:110)
试试这个
public static bool IsAdministrator()
{
var identity = WindowsIdentity.GetCurrent();
var principal = new WindowsPrincipal(identity);
return principal.IsInRole(WindowsBuiltInRole.Administrator);
}
这在功能上与您的代码相同,但上面的内容对我有用......
在功能上执行,(没有不必要的临时变量)......
public static bool IsAdministrator()
{
return (new WindowsPrincipal(WindowsIdentity.GetCurrent()))
.IsInRole(WindowsBuiltInRole.Administrator);
}
或者,使用表达体性质:
public static bool IsAdministrator =>
new WindowsPrincipal(WindowsIdentity.GetCurrent())
.IsInRole(WindowsBuiltInRole.Administrator);