Как проверить, существует ли имя пользователя Windows в домене?

Какой самый простой и эффективный способ в C # проверить, существует ли имя учетной записи пользователя Windows? Это в доменной среде.

Ввод: имя пользователя в формате [домен] / [пользователь] (например, "MyCompany \ боб ")Вывод: True, если имя пользователя существует, false, если нет.

Я нашелЭта статья но примеры там относятся к аутентификации и манипулированию учетными записями пользователей, и они предполагают, что у вас уже есть отличительное имя пользователя, тогда как я начинаю с имени учетной записи пользователя.

Я уверен, что могу понять это с помощью AD, но прежде чем я это сделал, мне было интересно, есть ли простой API более высокого уровня, который делает то, что мне нужно.

* ОБНОВИТЬ *

Есть, вероятно, много способов сделать это, Расс опубликовал один, который мог бы работать, но я не могне могу понять, как настроить его для работы в моей среде. Я нашел другой подход, используя провайдера WinNT, который сделал эту работу за меня:

    public static bool UserInDomain(string username, string domain)
    {
        string path = String.Format("WinNT://{0}/{1},user", domain, username);

        try
        {
            DirectoryEntry.Exists(path);
            return true;
        }
        catch (Exception)
        {
            // For WinNT provider DirectoryEntry.Exists throws an exception
            // instead of returning false so we need to trap it.
            return false;
        }
    }

Постскриптум Для тех, кто неt знаком с API, использованным выше: вам нужно добавить ссылку на System.DirectoryServices, чтобы использовать его.

Ссылка, которую я нашел, которая помогла мне в этом:Как я могу получить информацию о пользователе, используя ADSI В примерах используется ADSI, но его можно применять и к .NET DirectoryServices. Они также демонстрируют другие свойства пользовательского объекта, которые могут быть полезны.

Ответы на вопрос(2)

Ваш ответ на вопрос