首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#检查是否以管理员身份运行

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

Stack Overflow用户
提问于 2012-07-25 23:25:18
回答 1查看 52.1K关注 0票数 68

可能重复: Check if the current user is administrator

我需要测试应用程序(用C#编写,运行os Windows /Vista/7)是否以管理员身份运行(如右键单击.exe ->以管理员身份运行,还是以管理员身份在属性下的Compability选项卡中运行)。

我搜索并搜索了StackOverflow,但找不到有效的解决方案。

我的最后一次尝试是:

代码语言:javascript
复制
if ((new WindowsPrincipal(WindowsIdentity.GetCurrent()))
         .IsInRole(WindowsBuiltInRole.Administrator))
{
    ...
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-25 23:27:51

尝尝这个

代码语言:javascript
复制
public static bool IsAdministrator()
{
    var identity = WindowsIdentity.GetCurrent();
    var principal = new WindowsPrincipal(identity);
    return principal.IsInRole(WindowsBuiltInRole.Administrator);
}

这看起来和您的代码在功能上是一样的,但是上面的代码对我来说是有效的.

在功能上(没有不必要的临时变量).

代码语言:javascript
复制
public static bool IsAdministrator()
{
   return (new WindowsPrincipal(WindowsIdentity.GetCurrent()))
             .IsInRole(WindowsBuiltInRole.Administrator);
}  

或者,使用表达式体属性:

代码语言:javascript
复制
public static bool IsAdministrator =>
   new WindowsPrincipal(WindowsIdentity.GetCurrent())
       .IsInRole(WindowsBuiltInRole.Administrator);
票数 163
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11660184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档