2011-06-29 61 views
0

我有一個Web應用程序,並且具有「瀏覽用戶圖片」的功能。我有1700個用戶。現在我使用Active Directory查詢要做到這一點,如:從每個頁面的活動目錄中檢索30條記錄,同時不會加載所有數據

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

但它加載在旅途中的所有信息,並減慢我的應用程序。 有人可以讓我知道一種方法,我可以每頁顯示用戶30個條目,並且一次只從Active Directory獲取30條記錄。

回答

0

一種方法是使用「簡單分頁結果操作的LDAP控件擴展」,它由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 results = 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()將檢索所有值。我的應用程序變得非常慢,是否有其他方法。我希望服務器端分頁與客戶端同步。因此,用戶可以看到分頁,並可以進入他們想要的任何頁面,同時該頁面的記錄僅在當時從活動目錄中獲取。我很感謝你的幫助。 –

相關問題