C#检查是否以pipe理员身份运行

可能重复:
检查当前用户是否是pipe理员

我需要testing应用程序(使用C#编写,运行Windows XP / Vista / 7)是否以pipe理员身份运行(如右键单击.exe – >以pipe理员身份运行,或以属性下的兼容性选项卡以pipe理员身份运行) 。

我已经Google和searchStackOverflow,但我找不到一个工作的解决scheme。

我最后一次尝试是这样的:

if ((new WindowsPrincipal(WindowsIdentity.GetCurrent())) .IsInRole(WindowsBuiltInRole.Administrator)) { ... } 

尝试这个

 public static bool IsAdministrator() { var identity = WindowsIdentity.GetCurrent(); var principal = new WindowsPrincipal(identity); return principal.IsInRole(WindowsBuiltInRole.Administrator); } 

这看起来function上与你的代码相同,但上面的工作对我来说…

做function,(没有不必要的临时variables)…

 public static bool IsAdministrator() { return (new WindowsPrincipal(WindowsIdentity.GetCurrent())) .IsInRole(WindowsBuiltInRole.Administrator); }