Buenas gentes, escribo para saber si alguien se encontro con el mismo
problema que yo al intentar recuperar mas de 1000 entradas de active
directory con C#. Supuestamente esta es una limitacion del servidor pero es
posible obtener todo el active directory utilizando un
DirectoryVirtualListView.
Que obviamente no tengo ni idea de como utilizarlo ya que me sigue limitando
a 1000 entradas.
El codigo que paso a continuacion es una cosa chancha, es solo para que se
vea mas o menos que es lo que estoy queriendo hacer.
No puedo leer nada que supere la posicion 1000 dentro de mi busqueda.
A quien me ayude le invito una Cindor!

Slds.



protected void DEMO()

{

DirectoryEntry root = new DirectoryEntry("LDAP://SERVER");

DirectorySearcher search = new DirectorySearcher(root);

SortOption sort = new SortOption("SAMAccountName", SortDirection.Ascending);

bool exit = false;

int size = 85;

int start = 1;

int end = size;

search.Filter =
"(&(|(sAMAccountName=TAR*)(sAMAccountName=AR*)(sAMAccountName=TBR*)(sAMAccountName=BR*))(objectCategory=Person))"
;

search.Sort = sort;

DirectoryVirtualListView virtualList = new DirectoryVirtualListView();

virtualList.Offset = 1000;

search.VirtualListView = virtualList;

do

{

virtualList.BeforeCount = start;

virtualList.AfterCount = size;

SearchResultCollection searchResultCollection = search.FindAll();

if (searchResultCollection.Count >= end)

{}

else

{

foreach (SearchResult result in searchResultCollection)

{

Response.Write("<br>" + result.Properties["SAMAccountName"][0]);

}

exit = true;

}

start = end + 1;

end = end + size + 1;

} while (!exit);

}

Responder a