Как проверить, существует ли пользователь на LDAP

Мне нужно проверять пользователей в компании, используя только их имя пользователя - не их пароль.

Мне нужен такой метод

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

Я знаю пространство имен System.DirectoryServices , но не знаю, с чего начать.

Есть идеи?

Есть более 80 000 записей, так что имейте это в виду.

Спасибо.

Правка:

Я сделал это - мой код:

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

Я не знаю, правильный ли он, но, похоже, пока он работает.

Ответ Майкла состоит из двух важных частей:

Обновление №2:

На самом деле я использовал это:

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

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

    return foundUser != null;
}
5
задан Nobody 30 November 2010 в 10:28
поделиться