2011-06-29 4 views
0

私はWebアプリケーションを持っており、 "Browse User Pictures"という機能があります。私は1700人のユーザーを持っています。ページあたりのアクティブディレクトリから30レコードしか取得していないと同時に、移動中のすべてのデータをロードしない

DirectorySearcher ldapSearcher = new DirectorySearcher(lrootDSE, strRetrieve); 
ldapSearcher.PageSize = 20; 
ldapSearcher.SizeLimit = 1700; 

をしかし、それは、外出先ですべての情報をロードし、それが自分のアプリケーションを遅く:今、私はそのような操作を行うために、Active Directoryのクエリを使用しています。 誰かが私がページごとにユーザー30のエントリを表示し、一度にActive Directoryから30のレコードしか取得できない方法を教えてもらえますか?

答えて

0

「単純なページングされた結果操作のためのLDAPコントロール拡張」を使用する方法の1つは、MS Active Directoryによってサポートされており、必要な結果の数を指定できるようにすることです。

それは、RFC2696で定義されている:http://www.ietf.org/rfc/rfc2696.txtが、MSDNの記事に多くの、より読みやすいです:返信用http://msdn.microsoft.com/en-us/library/aa366953%28v=VS.85%29.aspx

+0

おかげで、私のコードはC#です。そして、私は文字列strRetrieve = "(&(objectCategory = person)(objectClass = user))と統合するクエリを見つけました。ので、私はSearchResultCollectionの結果を書く= ldapSearcher.FindAll();一度に30人のユーザーしか見つかりません。 –

+0

これを確認してくださいhttp://stackoverflow.com/questions/90652/can-i-get-more-than-1000-records-from-a-directorysearcher-in-asp-net/90668#90668しかし、私はそれが助けることができると思う。 –

+0

再びfindall()はすべての値を取得します。私のアプリケーションはそれで本当に遅くなります。私はクライアントサイドと同期してサーバ側のページングをしたい。したがって、ユーザーはページングを見ることができ、必要な任意のページに移動することができ、同時にそのページのレコードはアクティブなディレクトリからフェッチされます。私はあなたの助けに感謝します。 –

関連する問題