2010-02-11 16 views
6

Estoy ejecutando una página ASP.Net en IIS7, y desarrollándome en VS 2008. Actualmente, tengo autenticación de usuario que se realiza a través de una conexión LDAP. Una vez que el usuario inicia sesión, en una página tienen un formulario con información básica sobre ellos (como su nombre, dirección de correo electrónico, país y similares) y deseo completar previamente algunos de estos campos a partir de información ya almacenada en el LDAP. En particular, su nombre de pila y dirección de correo electrónico. La pregunta es, usando C#, ¿cómo recupero esta información?Cómo recuperar información de forma programática desde LDAP

Respuesta

8

Suena como si estuvieras en .Net 3.5 SP1, en ese caso puedes usar el espacio de nombres System.DirectoryServices.AccountManagement que en gran medida simplifica esto.

He aquí una muestra:

var pc = new PrincipalContext(ContextType.Domain, "mydomaincontroller"); 
var u = UserPrincipal.FindByIdentity(pn, userName); 
var email = u.EmailAddress; 
var name = u.DisplayName; 

Here's a full list of properties se puede agarrar.

+1

Gracias, una pequeña pregunta sin embargo. No estoy seguro sobre qué usar para la cadena que ha usado 'mydomaincontroller' para. La autenticación ldap se ha realizado utilizando ActiveDirectoryMembershipProvider en Web.Config. Presumiblemente tendré que proporcionar la URL de LDAP siempre que tenga un nombre de usuario y una contraseña. ¿Cuándo/dónde/cómo se hace esto? –

+3

@Jacob: normalmente me conecto a una variedad de controladores de dominio ... también puedes hacer 'var pc = new PrincipalContext (ContextType.Domain);' para obtener las ventanas de cualquier controlador de dominio que elijas o ... alternativamente, puedes hacer 'var pc = new PrincipalContext (ContextType.Domain," my.server.com "," user "," pass ");' Aquí hay una lista completa de opciones: http://msdn.microsoft.com/en-us/ library/system.directoryservices.accountmanagement.principalcontext.principalcontext.aspx –

+0

Gracias, esto parece ser justo lo que quería! –

Cuestiones relacionadas