【发布时间】:2011-05-26 02:59:53
【问题描述】:
我们如何检查 USERID 是否存在于 Active Directory 中。
我有 LDAP 字符串和用户 ID,我可以找到该用户 ID 是否存在于 Active Directory 中。我将它用于 ASP.NET Web 应用程序 (.NET 3.5)
【问题讨论】:
标签: c# active-directory userid
我们如何检查 USERID 是否存在于 Active Directory 中。
我有 LDAP 字符串和用户 ID,我可以找到该用户 ID 是否存在于 Active Directory 中。我将它用于 ASP.NET Web 应用程序 (.NET 3.5)
【问题讨论】:
标签: c# active-directory userid
您可以按照以下方式进行操作(将域替换为您正在验证的域或完全删除参数):
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,因为它具有用于验证用户凭据等的有趣方法。
【讨论】:
我会使用 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();
}
}
}
【讨论】:
user,但我从来没有看到usr 声明过。这些应该是同一个变量吗?