从AD域获取所有用户

时间:2010-09-09 06:01:06

标签: c# .net active-directory

我需要能够识别AD(Active Directory)域中的所有用户。我有域名,这是关于它。如果我可以将它作为UserPrincipal或其他东西的列表获得它会摇滚,但如果它只是一个字符串然后我可以从那里获得我需要的其余信息。

谢谢!

3 个答案:

答案 0 :(得分:5)

答案 1 :(得分:5)

如果您只需要获取用户列表,则可以使用此代码 -

var dirEntry = new DirectoryEntry(string.Format("LDAP://{0}/{1}", "x.y.com", "DC=x,DC=y,DC=com"));
var searcher = new DirectorySearcher(dirEntry)
         {
             Filter = "(&(&(objectClass=user)(objectClass=person)))"
         };
var resultCollection = searcher.FindAll();

但是,如果您需要对AD进行更多操作,则应考虑使用LINQ to AD API http://linqtoad.codeplex.com/

这是一个基于Linq的API,可以与AD一起使用。易于使用,我用它得到了一些好的结果。

答案 2 :(得分:2)

我认为你可以使用类似的东西:

DirectoryEntry domain = new DirectoryEntry("LDAP://domain.com/CN=Users,DC=Domain,DC=com");
foreach (DirectoryEntry child in domain.Children)
{
    // code
}