Jeśli jesteś na .NET 3.5 lub nowszy, należy sprawdź PrincipalSearcher
i „query-przez-przykład” główny zrobić swoją wyboru:
// create your domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "YOURDOMAIN", "OU=SomeOU,DC=YourCompany,DC=com");
// define a "query-by-example" principal - here, we search for a UserPrincipal
// and with the first name (GivenName) of "Bruce"
UserPrincipal qbeUser = new UserPrincipal(ctx);
qbeUser.GivenName = "Bruce";
// create your principal searcher passing in the QBE principal
PrincipalSearcher srch = new PrincipalSearcher(qbeUser);
// set the PageSize on the underlying DirectorySearcher to get all 3000 entries
((DirectorySearcher)srch.GetUnderlyingSearcher()).PageSize = 500;
// find all matches
foreach(var found in srch.FindAll())
{
// do whatever here - "found" is of type "Principal" - it could be user, group, computer.....
}
Jeśli nie już - absolutnie przeczytać artykuł MSDN Managing Directory Security Principals in the .NET Framework 3.5 który pokazuje ładnie, jak zrobić najlepszą używania nowe funkcje w System.DirectoryServices.AccountManagement
Aktualizacja:
Oczywiście, w zależności od potrzeb, można określić inne właściwości tego użytkownika głównego „Zapytanie przez przykład” tworzyć:
Surname
(lub ostatni nazwa)
DisplayName
(typowo: imię + spacja + nazwisko)
SAM Account Name
- imię i nazwisko Okna konto/AD
User Principal Name
- Twój „[email protected]” nazwa stylu
Możesz określić którąkolwiek z właściwości na UserPrincipal
i wykorzystywać je jako „zapytaniu przez przykład” dla PrincipalSearcher
.
Aktualizacja # 2: Jeśli chcesz wyszukać tylko wewnątrz danej jednostki organizacyjnej, można określić, że OU w konstruktora PrincipalContext
.
ale chcę filtrować według OU i uzyskać wynik wszystkich typów jest użytkownikiem w tym OU, tutaj nie ma słowa kluczowego do wyszukiwania – cciikk
To jest fajne, dziękuję! – cciikk
@cciikk: zobacz moją aktualizację - możesz ograniczyć wyszukiwanie do określonego kontenera, definiując go w konstruktorze 'PrincipalContext' –