确定跨域Active Directory组成员身份

时间:2010-12-21 20:38:00

标签: c++ active-directory group-membership

我目前正在开展一个项目,我需要查询Active Directory以确定用户的组成员身份。我最初是找到用户并检索memberOf属性。这个问题是有一个域和一个子域。这些组是通用组,因此它们可以在两个域中使用,并且不会显示在memberOf属性中。不幸的是,似乎没有太多关于使用C ++进行Active Directory访问的信息。无论如何在C ++中确定组成员身份?

1 个答案:

答案 0 :(得分:2)

如果您使用的是托管C ++,则可以使用UserPrincipal.GetAuthorizationGroups

如果您不使用托管C ++,要解决此特定问题,您应该绑定到全局编录并对组对象的成员属性执行LDAP搜索,以找出包含该用户的通用组。您应该通过指定groupType,objectCategory和objectClass来限制搜索。

但是,就像我在另一个post中提到的那样,一般来说,群组枚举很难做到正确。如果您只需要查找用户所属的所有群组,最好的办法是使用S4USelf

相关问题