validar usuario query password example active c# asp.net active-directory

usuario - query active directory c#



¿Cómo obtener grupos de usuarios de AD para el usuario en Asp.Net? (1)

Necesito poder obtener una lista de los grupos en los que se encuentra un usuario, pero necesito tener visibles algunas / algunas de las siguientes propiedades:

  • nombre distinguido
  • nombre
  • cn
  • samaccountname

Lo que tengo ahora me devuelve algún tipo de nombre, pero ninguno de los anteriores (los nombres parecen cercanos, pero no todos coinciden correctamente. Esto es lo que estoy usando:

ArrayList groups = new ArrayList(); foreach (System.Security.Principal.IdentityReference group in System.Web.HttpContext.Current.Request.LogonUserIdentity.Groups) groups.Add(group.Translate(typeof(System.Security.Principal.NTAccount)));

Como dije, lo anterior funciona, pero no me dará los nombres propios que necesito para mi programa (los que se especificaron anteriormente). Necesito esto para poder hacer coincidir la lista que obtengo al llamar a todos los grupos en mi dominio:

DirectoryEntry dirEnt = new DirectoryEntry("LDAP://my_domain_controller"); DirectorySearcher srch = new DirectorySearcher(dirEnt); srch.Filter = "(objectClass=Group)"; var results = srch.FindAll();


No puede hacer esto en un solo paso, ya que los grupos también son entradas AD separadas con propiedades.

Por lo tanto, en la primera ejecución debería obtener los nombres de grupo en los que se encuentra un usuario y completarlos en una lista de algún tipo.

El segundo paso es revisar todos los nombres de grupo y consultarlos uno por uno para obtener las propiedades del grupo (como nombre distinguido, etc.) y recopilarlo en algún tipo de estructura.