我已经阅读了相关的 Stack Overflow 问题并尝试了以下代码:
WindowsIdentity identity = WindowsIdentity.GetCurrent();
if (null != identity)
{
WindowsPrincipal principal = new WindowsPrincipal(identity);
return principal.IsInRole(WindowsBuiltInRole.Administrator);
}
return false;
即使我手动确认当前用户是本地内置 Administrators 组的成员,它也不会返回 true。
我错过了什么?
谢谢。
最佳答案
刚刚找到其他方法来检查用户是否是管理员,而不是以管理员身份运行应用程序:
private static bool IsAdmin()
{
WindowsIdentity identity = WindowsIdentity.GetCurrent();
if (identity != null)
{
WindowsPrincipal principal = new WindowsPrincipal(identity);
List<Claim> list = new List<Claim>(principal.UserClaims);
Claim c = list.Find(p => p.Value.Contains("S-1-5-32-544"));
if (c != null)
return true;
}
return false;
}
归功于 this answer , 但代码更正了一点。
关于c# - 如何检查当前用户是否在管理组c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44507149/