Поскольку вы работаете в .NET 3.5 или выше, вы можете использовать PrincipalSearcher
и принцип «запрос по примеру» для выполнения поиска:
// create your domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// define a "query-by-example" principal - here, we search for a GroupPrincipal
// with the security group flag set
GroupPrincipal qbeGroup = new GroupPrincipal(ctx);
qbeGroup.IsSecurityGroup = true;
// create your principal searcher passing in the QBE principal
PrincipalSearcher srch = new PrincipalSearcher(qbeGroup);
// find all matches
foreach(var found in srch.FindAll())
{
// do whatever here - "found" is of type "Principal" - it could be user, group, computer.....
}
Если вы этого не сделалиуже - абсолютно прочитайте статью MSDN Управление принципами безопасности каталогов в .NET Framework 3.5 , которая показывает, как наилучшим образом использовать новые функции в System.DirectoryServices.AccountManagement