2013-07-12 111 views
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总是回来为假,即使有问题的用户是该组的成员。有什么想法我做错了什么?任何帮助,将不胜感激。

谢谢!

更新这是野生的,但我已成功地隔离问题到一组,域用户组,我已经验证了这一点与其他“建在” AD组和成员正确显示。有什么想法吗?

回答

0

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