System.DirectoryServices
Este namespace que nos da acceso al Active Directory tiene dos clases que utilizaremos para acceder a los datos de un usuario:DirectoryEntry. Esta clase proporciona una conexión al Active Directory conteniendo los hijos del Active Directory.
DirectorySearcher. Esta clase realiza busquedas dentro del Active Directory.
Este ejemplo podeis incluirlo en cualquier método, clase o donde queráis utilizarlo.
Primero acotamos los varoles de busqueda y la ruta del Active Directoy, en nuestro caso buscaremos datos del usuario “pruebas01” en el Active Directory de asmws.com.
string username = "pruebas01";
string pwd = "pru120!!";
string strPath = "LDAP://asmws.com/DC=asmws, DC=com";
string strDomain = "asmws";
string domainAndUsername = strDomain + @"" + username;
DirectoryEntry entry = new DirectoryEntry(strPath, domainAndUsername, pwd);
Realizamos una busqueda sobre la entrada anteriormente seleccionada.DirectorySearcher search = new DirectorySearcher(entry);
Filtramos el usuario del que queremos obtener los datos.search.Filter = "name=" + username;
Y realizamos una busqueda de todos sus datos.SearchResultCollection results = search.FindAll();
El resultado de la busqueda se guarda en un colección SearchResultCollection. Recorriendo esta colección encontraremos sus propiedades.foreach(SearchResult resultados in results) {
Creamos una variable para almacenar las propiedades, que será una colección de propiedades, ResultPropertyCollection.ResultPropertyCollection colProperties = resultados.Properties;
Y recorremos dicha colección, en el campo Key obtendremos el nombre de la propiedad y en el campo value el valor de dicha propiedad.
foreach(string key in colProperties.PropertyNames) {
foreach(object value in colProperties[key]) {
Response.Write ("" + key.ToString() + ": " + value + "
");
}
}
Saludos
Alex