使用C#检查Active Directory中是否存在UserID

时间:2010-12-15 19:06:36

标签: c# active-directory userid

我们如何检查USERID中是否存在USERID。

我有LDAP String和UserID,我可以找到Active Directory中是否存在该UserID。我将它用于ASP.NET Web应用程序(.NET 3.5)

2 个答案:

答案 0 :(得分:46)

您可以执行某些操作(使用您要进行身份验证的域替换域或完全删除参数):

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,因为它有用于验证用户凭据等的有趣方法。

答案 1 :(得分:8)

我会使用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