Cómo verificar si un usuario existe en LDAP
Necesito verificar a los usuarios de la empresa utilizando solo su nombre de usuario, no su contraseña.
Entonces necesito un método como este
public bool UserExists(string username)
{ ... }
Soy consciente de laSystem.DirectoryServices
espacio de nombres pero no sé por dónde empezar.
¿Algunas ideas?
Hay más de 80,000 registros, así que trate de tener eso en cuenta.
Gracias.
Editar:
Lo he hecho, mi código es:
private bool UserExists(string userName, string domain)
{
try
{
DirectoryEntry.Exists("WinNT://" + domain + ".[hidden].com/" + userName);
return true;
}
catch (COMException)
{
return false;
}
}
No sé si es correcto, pero parece funcionar hasta ahora.
La respuesta de Michael tiene dos partes relevantes:
http://www.codeproject.com/KB/system/everythingInAD.aspx#22http://www.codeproject.com/KB/system/everythingInAD.aspx#35Actualización n. ° 2:
De hecho, usé esto:
public static bool LoggedOnUserExists()
{
var domain = new PrincipalContext(ContextType.Domain);
UserPrincipal foundUser = UserPrincipal.FindByIdentity(domain, IdentityType.SamAccountName, Environment.UserName);
return foundUser != null;
}