.NET 判断当前是否管理员

我们运行Windows应用,经常需要管理员权限去读写系统文件、外设设备。以管理员权限启动应用可以参考:C# 程序管理员权限启动 – 唐宋元明清2188 – 博客园 (cnblogs.com)

进入程序后,我们判断当前是否管理员以规避一些其它入口的场景

使用 WindowsIdentity 和 WindowsPrincipal,可以用这些类检查当前用户是否具备管理员权限:

using System.Security.Principal;

判断是否管理员权限:

1     using var windowsIdentity = WindowsIdentity.GetCurrent();
2     var isInRole = new WindowsPrincipal(windowsIdentity).IsInRole(WindowsBuiltInRole.Administrator);
3     TestBlock.Text = $"管理员:{isInRole}";

操作权限WindowsBuiltInRole有这些枚举:

AccountOperator 帐户操作员管理计算机或域中的用户帐户。

Administrator 管理员具有对计算机或域的完全的无限制的访问权限。

BackupOperator 备份操作员仅在出于备份或还原文件目的时才可以重写安全限制。

Guest 来宾受到比用户更多的限制。

PowerUser 超级用户具有大部分管理员权限(但也受到某些限制)。 因此,高级用户除了可以运行已验证过的应用程序外,还可以运行旧式应用程序。

PrintOperator 打印操作员可以获得打印机的控制权。

Replicator 复制程序支持域中的文件复制。

SystemOperator 系统操作员管理特定的计算机。

User 用户被阻止进行意外的或有意的系统级更改。 因此,用户可以运行已验证过的应用程序,但不能运行大部分旧式应用程序。

 

来源链接:https://www.cnblogs.com/kybs0/p/18442036

© 版权声明
THE END
支持一下吧
点赞9 分享
评论 抢沙发
头像
请文明发言!
提交
头像

昵称

取消
昵称表情代码

    暂无评论内容