web-dev-qa-db-fra.com

Vérifier que l'ID utilisateur existe dans Active Directory à l'aide de C #

Comment pouvons-nous vérifier si l'USERID existe dans Active Directory ou non.

J'ai une chaîne LDAP et un ID utilisateur, puis-je savoir si cet ID utilisateur existe dans Active Directory ou non. J'utilise ceci pour ASP.NET Web Application (.NET 3.5)

26
msbyuva

Vous pouvez faire quelque chose comme (remplacer le domaine par le domaine contre lequel vous vous authentifiez ou supprimer complètement le paramètre):

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;
        }
    }
}

Pour vérifier si un utilisateur existe. Cela vient du System.DirectoryServices.AccountManagement namespace et Assembly.

Vous pouvez trouver plus d'informations sur http://msdn.Microsoft.com/en-us/library/system.directoryservices.accountmanagement.aspx

Vous voudrez peut-être vérifier davantage dans PrincipalContext car il a des méthodes intéressantes pour authentifier les informations d'identification de l'utilisateur et autres.

46
Joshua Rodgers

J'utiliserais le System.DirectoryServices.AccountManagement espace de noms.

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();
        }
    }
}

Voir http://msdn.Microsoft.com/en-us/library/bb344891.aspx pour plus d'informations

8
Grhm