.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 用户被阻止进行意外的或有意的系统级更改。 因此,用户可以运行已验证过的应用程序,但不能运行大部分旧式应用程序。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
2021-09-30 WPF Window设置ResizeMode="NoResize"