我试图让所有用户进入"程序员"来自AD的小组。
如果我将目录条目用作LDAP://DC=Domain
并过滤为memberOf=CN=Programmers,CN=Users,DC=Domain
,我可以获得用户列表。
但如果我直接使用LDAP://CN=Programmers,CN=Users,DC=Domain
条目,我就无法获得任何结果。
using (DirectoryEntry de = new DirectoryEntry(string.Format("LDAP://CN=Programmers,CN=Users,DC=Domain")))
using (DirectorySearcher ds = new DirectorySearcher(de))
{
int pageIndex = PAGESIZE * nPage + 1;
ds.SearchScope = SearchScope.Subtree;
ds.Sort = new SortOption("samaccountname", SortDirection.Ascending);
ds.VirtualListView = new DirectoryVirtualListView(0, PAGESIZE - 1, pageIndex);
var results = ds.FindAll();
}
有人可以说明原因吗?
我之所以要使用它而不是" memberOf"过滤器,是出于性能考虑。但我不确定这是否会真正改善性能。所以第二个问题是:这两种方法之间是否有任何性能差异?
答案 0 :(得分:0)
终于解决了......
代码应为:
ds.SearchScope = SearchScope.Base;
ds.AttributeScopeQuery = "member";
然后它会起作用。