我需要测试应用程序(用C#编写,运行os Windows /Vista/7)是否以管理员身份运行(如右键单击.exe ->以管理员身份运行,还是以管理员身份在属性下的Compability选项卡中运行)。
我搜索并搜索了StackOverflow,但找不到有效的解决方案。
我的最后一次尝试是:
if ((new WindowsPrincipal(WindowsIdentity.GetCurrent()))
.IsInRole(WindowsBuiltInRole.Administrator))
{
...
}发布于 2012-07-25 23:27:51
尝尝这个
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);https://stackoverflow.com/questions/11660184
复制相似问题