我有代码来验证用户是否存在于本地计算机的管理员组中。如果用户直接存在于管理员组中,则代码可以正常工作
using (DirectoryEntry groupEntry = new DirectoryEntry("WinNT://./Administrators,group")) {
foreach (object member in (IEnumerable)groupEntry.Invoke("Members"))
{
using (DirectoryEntry memberEntry = new DirectoryEntry(member))
{
if (memberEntry.Name.ToLower() == UserName.ToLower())
{
IsUserAdmin = true;
break;
}
}
} }
但是,如果用户存在于 AD 组中并且该 AD 组已添加到管理员组中,则代码将失败。另一种情况是用户是嵌套 AD 组的一部分,最终的 AD 组添加到管理员组中。
当直接添加用户并且存在相关的 AD 组时,我们如何检查用户是否属于管理员组?
我想让代码在 Windows Server 2008、2008 R2 和 2012 上运行