Comment vérifier si un utilisateur existe sur LDAP

J'ai besoin de vérifier l'identité des utilisateurs dans l'entreprise en utilisant uniquement leur nom d'utilisateur - pas de mot de passe.

J'ai donc besoin d'une méthode comme ceci

public bool UserExists(string username)
{ ... }

Je suis conscient de la System.DirectoryServices espace de noms mais ne savez pas par où commencer.

Des idées?

Il y a 80,000+ enregistrements donc, essayez de garder cela à l'esprit.

Merci.

Edit:

J'ai fait mon code est:

private bool UserExists(string userName, string domain)
{
    try
    {
        DirectoryEntry.Exists("WinNT://" + domain + ".[hidden].com/" + userName);
        return true;
    }
    catch (COMException)
    {
        return false;
    }
}

Je ne sais pas si c'est correct, mais il semble fonctionner pour autant.

Michael réponse en deux parties:

Mise à jour #2:

J'ai utilisé ceci:

public static bool LoggedOnUserExists()
{
    var domain = new PrincipalContext(ContextType.Domain);

    UserPrincipal foundUser = UserPrincipal.FindByIdentity(domain, IdentityType.SamAccountName, Environment.UserName);

    return foundUser != null;
}
Vous devez vous PAS utiliser le dossier WinNT fournisseur de plus - il est strictement à des fins de compatibilité descendante, mais il généralement ne fonctionne pas bien dans un réseau AD

OriginalL'auteur Nobody | 2010-11-29