通过ruby net-ldap查询LDAP用户的更好方法?

Bea*_*aon 3 ruby ldap netldap

有没有更好的方法来搜索专门使用Net-ldap gem的用户和计算机?

这是我目前要做的只是为了获得用户.

results = search :base => @base, :filter => Net::LDAP::Filter.eq("cn", "*")
  @results = Array.new

  results.each do |result|
    @results.push result if result[:objectclass].include? "person" unless result[:objectclass].include? "computer"
Run Code Online (Sandbox Code Playgroud)

似乎会有更好的方法.我在文档中看不到任何明显的东西.

Nei*_*off 5

您可以使用net-ldap的Join过滤器功能:

filter = Net::LDAP::Filter.eq("sAMAccountName", "*")
filter2 = Net::LDAP::Filter.eq("objectCategory", "organizationalPerson")

joined_filter = Net::LDAP::Filter.join(filter, filter2)

ldap.search(:base => treebase, :filter => joined_filter) do |entry|
    puts entry.sAMAccountName
end
Run Code Online (Sandbox Code Playgroud)