【发布时间】:2012-12-26 10:08:51
【问题描述】:
我有代码来验证用户是否存在于本地计算机的管理员组中。如果用户直接存在于管理员组中,则代码可以正常工作
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 上运行
【问题讨论】:
-
什么版本的 Windows。在 Windows XP 和 Windows Vista 及更高版本中执行此操作的过程会有所不同。
-
我需要在 Windows Server 2008、2008 R2、2012 和 2012 R2 上验证用户。
标签: c# active-directory windows-server-2008