Я пытаюсь получить пользователей с сервера LDAP. Сервер ограничен 200 результатами на ответ, и я хочу, чтобы все пользователи были старше 5000. Поэтому мне нужно выполнить какую-то нумерацию страниц. до сих пор я пробовал два подхода:
- Установка свойства DirectorySearcher PageSize. При таком подходе создается исключение, которое гласит: «[DSA]: разбиение на страницы невозможно, когда требуется связывание (DSP)». Вот код
DirectoryEntry rootEntry = new DirectoryEntry("LDAP://server.name");
rootEntry.Username = "cn=any,o=any,dc=any,dc=any";
rootEntry.Password = "thepassword";
rootEntry.AuthenticationType = AuthenticationTypes.FastBind;
using (DirectorySearcher searcher = new DirectorySearcher(rootEntry))
{
searcher.PageSize = 50;
searcher.Filter = "(&(objectClass=person))";
foreach (SearchResult sr in searcher.FindAll())
{
Console.WriteLine(sr.Path);
}
}
- Использование VirtualListView. Это также вызывает исключение «Значение свойства VirtualListView не может быть установлено» и код:
DirectoryEntry rootEntry = new DirectoryEntry("LDAP://server.name", "cn=any,o=any,dc=any,dc=any", "any", AuthenticationTypes.FastBind);
using (DirectorySearcher searcher = new DirectorySearcher(rootEntry))
{
searcher.Filter = "(&(objectClass=person))";
searcher.Sort = new SortOption("cn", SortDirection.Ascending);
searcher.VirtualListView = new DirectoryVirtualListView(25);
foreach (SearchResult sr in searcher.FindAll())
{
Console.WriteLine(sr.Path);
}
}
Может кто-нибудь сказать мне, что я делаю не так? заранее спасибо.