Ya que estás en .NET 4, debe verificar el espacio de nombres System.DirectoryServices.AccountManagement
(S.DS.AM). Leer todos los detalles aquí:
Básicamente, se puede definir un contexto de dominio y encontrar fácilmente los usuarios y/o grupos en el año:
// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// find a user - by e.g. his "samAccountName", or the Windows user name or something
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName");
if(user != null)
{
// do something here....
string samAccountName = user.SamAccountName;
}
Si no puede encontrar un usuario especificado por un nombre de usuario, también puede usar la nueva funcionalidad de búsqueda:
// define a "query-by-example" principal - here, we search for a UserPrincipal
// and with the first name (GivenName) and a last name (Surname)
UserPrincipal qbeUser = new UserPrincipal(ctx);
qbeUser.GivenName = firstName;
qbeUser.Surname = lastName;
// create your principal searcher passing in the QBE principal
PrincipalSearcher srch = new PrincipalSearcher(qbeUser);
// find all matches
foreach(var found in srch.FindAll())
{
// do whatever here - "found" is of type "Principal" - it could be user, group, computer.....
}
¡El nuevo S.DS.AM hace que sea muy fácil jugar con usuarios y grupos en AD! Y encontrar un solo usuario también debería ser relativamente rápido.
gran ayuda, me gustaría poder aceptar la totalidad de anwsers de sus individuos – user1225072
@marc_s esto era exactamente lo que estaba buscando, perfecto, gracias. .. sin embargo, descubrí por las malas que si no se necesita ningún campo que solicite al usuario para buscar, omita la propiedad correspondiente en 'UserPrincipal'. Originalmente estaba presionando 'string.empty' y luego incluso' null' y estaba obteniendo ** ** resultados devueltos. Sin embargo, tan pronto como agregué una instrucción 'if' e ignoré ese ítem en' UserPrincipal', finalmente obtuve resultados (_ie: omitido ** GivenName ** cuando ** FirstName ** no estaba poblado, en lugar de establecer por defecto_). – famousKaneis