HowTo: LDAP, obtener propiedades de la clase user

Hace poco publicaba una actualización del método getUserLDAProperties de la clase LDAPservices. Esta función se encarga de recuperar todas las propiedades de la clase ‘user’ definidas  en el esquema del AD de la organización.

LDAPUserProperties

La verdad es que dicha corrección no me terminaba de satisfacer. Así que después de bucear un poco por el modelo de objetos del namespace System.DirectoryServices.ActiveDirectory he encontrado un método más elegante, y que además permite acceder a más propiedades opcionales (algo que la anterior versión no permitía).

Os dejo aquí el código y en cuando tenga un minuto actualizo el código fuente de LDAPServices en skydrive.

public static List<string> 
    getUserLDAPProperties(string LDAPURL)
{
    List<string> properties =new List<string>();
    ActiveDirectorySchema objADSchema = ActiveDirectorySchema.GetCurrentSchema();
    ActiveDirectorySchemaClass objADUserSchema;
    ActiveDirectorySchemaPropertyCollection objADPropertiesCollection;
    objADUserSchema = objADSchema.FindClass("user");
    objADPropertiesCollection = objADUserSchema.MandatoryProperties;
    foreach (ActiveDirectorySchemaProperty objADSchemaProperty in objADPropertiesCollection)
    {
        properties.Add(objADSchemaProperty.Name);
    }
    objADPropertiesCollection = objADUserSchema.OptionalProperties;
    foreach (ActiveDirectorySchemaProperty objADSchemaProperty in objADPropertiesCollection)
    {
        properties.Add(objADSchemaProperty.Name);
    }
    return (from p in properties orderby p select p).ToList();
}

Nos vemos!

** crossposting desde el blog de Lluís Franco en geeks.ms **

Leave a Reply

Your email address will not be published. Required fields are marked *


*