Проверьте, существует ли идентификатор пользователя в Active Directory с использованием C # - PullRequest
25 голосов
/ 15 декабря 2010

Как мы можем проверить, существует ли USERID в Active Directory или нет.

У меня есть строка LDAP и идентификатор пользователя, могу ли я узнать, существует ли этот идентификатор пользователя в Active Directory или нет.Я использую это для ASP.NET Web Application (.NET 3.5)

Ответы [ 2 ]

46 голосов
/ 15 декабря 2010

Вы можете сделать что-то вроде (заменив домен доменом, для которого вы проводите аутентификацию, или полностью удалив параметр):

public bool DoesUserExist(string userName)
{
    using (var domainContext = new PrincipalContext(ContextType.Domain, "DOMAIN"))
    {
        using (var foundUser = UserPrincipal.FindByIdentity(domainContext, IdentityType.SamAccountName, userName))
        {
            return foundUser != null;
        }
    }
}

Для проверки наличия пользователя.Это происходит из пространства имен System.DirectoryServices.AccountManagement и сборки.

Дополнительную информацию можно найти по адресу http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.aspx

. Возможно, вы захотите узнать больше о PrincipalContext, поскольку в нем есть интересные методы аутентификации учетных данных пользователя инапример.

8 голосов
/ 15 декабря 2010

Я бы использовал пространство имен System.DirectoryServices.AccountManagement.

string UserID = "grhm";
bool userExists = false;

using (var ctx = new PrincipalContext(ContextType.Domain))
{
    using (var user = UserPrincipal.FindByIdentity(ctx, UserID))
    {
        if (user != null)
        {
            userExists = true;
            user.Dispose();
        }
    }
}

См. http://msdn.microsoft.com/en-us/library/bb344891.aspx для получения дополнительной информации

...