2011-07-06 196 views
2

我一直在敲我的头几个小时,试图找出为什么这不会'工作。我找到了一个从AD组获得用户列表的例子,但是我无法使其工作。这里是我一直在努力做的事情:从Active Directory组获取用户

DirectoryEntry de = new DirectoryEntry("LDAP://DC=" + domain + ",DC=com"); 

DirectorySearcher ds = new DirectorySearcher(de);//, "(objectClass=person)"); 

ds.Filter = "(&(objectCategory=person)(objectclass=user)(memberOf=CN=!CityNameGroup))"; 

ds.PropertiesToLoad.Add("givenname"); 
ds.PropertiesToLoad.Add("samaccountname"); 
ds.PropertiesToLoad.Add("sn"); 
ds.PropertiesToLoad.Add("useraccountcontrol"); 

foreach (SearchResult sr in ds.FindAll()) 
{//stuff goes here} 

ds.FindAll总是带回0的结果与此过滤器。我可以做更简单的过滤器来恢复结果,但我从来没有从上面的过滤器得到任何回报。我只想要所有在!CityNameGroup中的用户。我感谢帮助!

回答

3

如果.NET 3.5是一个选项,停止敲打你的头,看看这里:

Everything in Active Directory via C#.NET 3.5 (Using System.DirectoryServices.AccountManagement)

严重的是,处理AD .NET 3.5中是另一个世界。它会改变一切。当然,更好。

更新

而且,这里有一个现成的答案(Active Directory User Group Memberships GroupPrincipal)。我会有不抄袭的礼仪。 :)

它使用.NET 3.5,BTW。

+0

你摇滚!谢谢:) – adminJaxon

+0

总是乐于帮忙! –

相关问题