2011-06-29 29 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()将检索所有值。我的应用程序变得非常慢,是否有其他方法。我希望服务器端分页与客户端同步。因此,用户可以看到分页,并可以进入他们想要的任何页面,同时该页面的记录仅在当时从活动目录中获取。我很感谢你的帮助。 –

相关问题