2016-05-25 14 views
0

LDAPからすべてのアクティブなユーザーをフェッチします。 LDAPには1kユーザー以上の方法があります(afaikでは、1回のリクエストでLdapから1kユーザーしかかかりません)。 C#を使用する場合 が、私はこれを使用:JavaのLDAPのすべてのユーザー

//Open connection to LDAP Server 

using (var directoryEntry = new DirectoryEntry("LDAP"****************", 
      { 
       using (var directorySearcher = new DirectorySearcher(directoryEntry) 
       { 
        PageSize = 1000, 
        Filter = "****************", 
        SearchScope = System.DirectoryServices.SearchScope.Subtree, 
        PropertiesToLoad = 
        { 
         ***, 
         ***, 
         ... 
        } 
       }) 
       { 
        using (SearchResultCollection src = directorySearcher.FindAll()) 
        { 
         try 
         { 
          foreach (SearchResult sr in src) 
          { 
           //Create User and add to a List of Users 

は、今私は同じですが、Javaコードで行う必要があります。私が試したことはこれです:

NamingEnumeration<SearchResult> results = ctx.search(ldapSearchBase, searchFilter, searchControls); 

     SearchResult searchResult = null; 

     while (results.hasMoreElements()) { 
      searchResult = (SearchResult) results.nextElement(); 

      //Create User from searchResult Attributes and add to a List 
     } 

このJavaコードが終了すると問題が1kのユーザーがフェッチ得ることは明らかであるので、私は、1kのユーザーのリストを持っています。

質問:

私は1kのユーザーフェッチするためにJavaを伝えるにはどうすればよい - 一覧へ>書き込み - >これ以上のユーザーがなくなるまで次の1Kを取得取得するために残しました。

ありがとうございます!

答えて

0

回答は使用しているLDAPディレクトリによって異なります。私はあなたがC#を使用していた場合、それがActive Directoryであると仮定します。このpostには、1000制限に達するのを避けるために、ページ結果コントロールを使用する方法が記載されています。

いいえ、1000の制限は、すべてのLDAPサーバー実装で共通ではありません。これは、Active Directoryがデフォルトで使用する制限です。ページ結果コントロールを使用する代わりに、MaxPageSizeの制限を大きくすることもできます。

関連する問題