27

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

我有 LDAP 字符串和用户 ID,我能否找到该用户 ID 是否存在于 Active Directory 中。我将它用于 ASP.NET Web 应用程序(.NET 3.5)

4

2 回答 2

49

您可以执行以下操作(将域替换为您正在验证的域或完全删除参数):

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

于 2010-12-15T20:44:07.137 回答
9

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

于 2010-12-15T20:44:47.480 回答