0

我一直在疯狂地跑来跑去,试图让它正常工作,但似乎它拒绝了。我在网上找到的所有示例看起来都差不多,只是 PrincipalContext、UserPrincipal 和 GroupPrincipal 的声明方式有所不同。有些是由返回对象的函数声明的,有些则直接执行。令我沮丧的是,当我运行这段代码时:

PrincipalContext oPrincipalContext = GetPrincipalContext(sDefaultRootOU);
            UserPrincipal oUserPrincipal = UserPrincipal.FindByIdentity(oPrincipalContext, IdentityType.SamAccountName, sUserName);
            GroupPrincipal oGroupPrincipal = GroupPrincipal.FindByIdentity(oPrincipalContext, sGroupName);

            bool isUserGroupMember = oUserPrincipal.IsMemberOf(oGroupPrincipal);

无论我做什么,isUserGroupMember 总是返回 false,即使相关用户是该组的成员。关于我做错了什么有什么想法吗?任何帮助,将不胜感激。

谢谢!

更新这很疯狂,但是我已设法将问题隔离到一个组,即域用户组,我已针对其他“内置”AD 组验证了这一点,并且成员资格显示正确。有什么想法吗?

4

1 回答 1

0

虽然不是一个完整的答案,但似乎“域用户”组是唯一返回此结果的组,无论其成员身份如何。看到默认情况下所有用户都是该组的成员,如果指定的组是“域用户”,我只是在其中写了一行以忽略该组

于 2013-07-15T11:59:27.303 回答