Necesito verificar los usuarios de la compañía utilizando solo su nombre de usuario, no su contraseña.Cómo verificar si un usuario existe en LDAP
por eso es necesario un método como este
public bool UserExists(string username)
{ ... }
Soy consciente de la System.DirectoryServices
espacio de nombres, pero no saben por dónde empezar.
¿Alguna idea?
Hay más de 80,000 registros, así que trate de tener esto 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 que funciona hasta ahora.
respuesta de Michael tiene dos partes relevantes:
- http://www.codeproject.com/KB/system/everythingInAD.aspx#22
- http://www.codeproject.com/KB/system/everythingInAD.aspx#35
Actualización # 2:
realidad utilicé esta:
public static bool LoggedOnUserExists()
{
var domain = new PrincipalContext(ContextType.Domain);
UserPrincipal foundUser = UserPrincipal.FindByIdentity(domain, IdentityType.SamAccountName, Environment.UserName);
return foundUser != null;
}
** NO ** debe usar el proveedor de WinNT más, es estrictamente por compatibilidad con versiones anteriores, pero normalmente no funciona bien en una red AD –