validar usuario single query password active c# .net active-directory ldap

usuario - single sign on c# active directory



Cómo recuperar DirectoryEntry de un DirectoryEntry y un DN (2)

Tengo un objeto DirectoryEntry que representa un usuario. Desde la colección DirectoryEntry.Properties , estoy recuperando la propiedad "manager" , que me dará un valor de Nombre distinguido ("DN") para el administrador del usuario.

¿Puedo recuperar un objeto DirectoryEntry para el administrador solo de estos dos objetos? ¿Si es así, cómo?

Estoy visualizando algo como DirectoryEntry.GetEntryFromDN(dnManager); , pero no puedo encontrar una llamada similar.

Solo para aclarar, DirectoryEntry y DN son las únicas piezas de información que tengo. No puedo instanciar un nuevo DirectoryEntry porque entonces tendría que usar el directorio y las credenciales predeterminadas o tener el nombre / puerto del directorio y el nombre de usuario / contraseña.


Puede crear una nueva instancia de DirectoryEntry proporcionando el DN como argumento y luego intentar enlazar (por ejemplo, refrescando propiedades).

DirectoryEntry e = new DirectoryEntry (dn, "u", "p");
e.RefreshCache ();


DirectoryEntry User = YourPreExistingUser(); string managerDN = User.Properties["manager"][0].ToString(); // Browse up the object hierarchy using DirectoryEntry.Parent looking for the // domain root (domainDNS) object starting from the existing user. DirectoryEntry DomainRoot = User; do { DomainRoot = DomainRoot.Parent; } while (DomainRoot.SchemaClassName != "domainDNS"); // Use the domain root object we found as the search root for a DirectorySearcher // and search for the manager''s distinguished name. using (DirectorySearcher Search = new DirectorySearcher()) { Search.SearchRoot = DomainRoot; Search.Filter = "(&(distinguishedName=" + managerDN + "))"; SearchResult Result = Search.FindOne(); if (Result != null) { DirectoryEntry Manager = Result.GetDirectoryEntry(); } }