1

我只有一个用户名,没有任何密码。我只想检查此用户名是否存在于Active Directory中。我该怎么做?

4

3 回答 3

2

如果您使用的是 .NET 3.5,则可以使用这些System.DirectoryServices.AccountManagement功能。您的代码将类似于:

// create a "principal context" - e.g. your domain (could be machine, too)
PrincipalContext pc = new PrincipalContext(ContextType.Domain, "YOURDOMAIN");

UserPrincipal user = UserPrincipal.FindByIdentity(pc, "username");

bool userExists = (user != null);

这应该够了吧 ;-)

有关 S.DS.AM 的更多详细信息,请参阅这篇出色的 MSDN 文章:

在 .NET Framework 3.5 中管理目录安全主体

于 2010-01-12T10:13:05.110 回答
1

尝试这个:

string strDomain = DOMAINNAME;
string strUserId = USERNAME;

string strPath = "LDAP://DC=" + strDomain.Trim() + ",DC=com";

DirectoryEntry de = new DirectoryEntry(strPath);
DirectorySearcher deSearch = new DirectorySearcher(de);

deSearch.Filter = "(&(objectClass=user)(SAMAccountName=" + strUserId.Trim() + "))";

SearchResult results = deSearch.FindOne();
if ((results == null))
{
    //No User Found
}
else
{
   //User Found
}
于 2010-01-12T09:40:21.637 回答
0

您可以使用该类DirectoryEntry来完成此类任务。在此处查看-方法:http Exists: //msdn.microsoft.com/en-us/library/system.directoryservices.directoryentry.exists.aspx

于 2010-01-12T09:06:06.270 回答