【问题标题】:How to check if user is active?如何检查用户是否处于活动状态?
【发布时间】:2020-06-27 15:26:15
【问题描述】:

我正在使用 Java 从客户端服务器查询 Active Directory。

我的基础 DN 是

CN=GGM-FOX-MANAGER,OU=ClaimRoles,OU=Groups,OU=ENT,DC=ad,DC=myhostname,dc=com

所以我正在尝试使用此查询从上述组中提取所有用户

(objectClass=*)

返回这么多键和值。

例如:

displayName: GGM-FOX-MANAGER
member: CN=100,OU=Employees,OU=Shopping,DC=RB,DC=ad,DC=myhostname,dc=com;and more users separated by ;
objectClass: top;group
objectCategory: CN=Group,Cn=Schema,CN=Configuration,DC=ad,DC=myhostname,dc=com
cn=GGM-FOX-MANAGER
distinguishedName=CN=GGM-FOX-MANAGER,OU=ClaimRoles,OU=Groups,OU=ENT,DC=ad,DC=myhostname,dc=com
etc

如何编写查询以仅提取成员,而不是获取上述示例数据?其次,如何使用查询知道成员的状态,是否活跃?

使用 Java

【问题讨论】:

    标签: java active-directory ldap


    【解决方案1】:

    每当进行 LDAP 查询时,您都可以告诉它您希望它为每个结果返回哪些属性。如果您不指定任何内容,它将为您提供一切。你可以告诉它只返回member 属性。

    要查找每个成员的信息,您必须遍历member 属性的每个值,该属性会为您提供每个成员的专有名称 (DN)。然后您可以绑定到该用户对象并查看该对象的属性。

    如果您想知道帐户是否启用,您需要查看userAccountControl 属性的第二位。在 Java 中,您可以将 userAccountControl 的值与 & 2 一起使用。如果结果是2,则它被禁用。如果结果为0,则启用。我不是 Java 开发人员,但您可以找到示例 in this answer

    【讨论】:

      猜你喜欢
      • 2012-06-02
      • 2014-05-24
      • 1970-01-01
      • 2017-12-30
      • 1970-01-01
      • 1970-01-01
      • 2020-01-11
      • 2019-12-10
      • 1970-01-01
      相关资源
      最近更新 更多