【发布时间】:2012-09-01 04:53:34
【问题描述】:
下面的代码运行良好,但是代码将结果限制为 1500 个用户,而我们有超过 1500 个用户。我要做的是检索属于特定组的所有用户的列表。我知道DirectorySearcher 有一个 PageSize 设置,但是我无法找到一种方法来设置 DirectoryEntry PageSize 仍然只会拉该组的成员。
有人知道改变页面大小的方法吗?或者也许如何以适应页面大小的另一种方式拉动特定组的成员?
DirectoryEntry dEntryhighlevel = new DirectoryEntry("LDAP://CN=Users,OU=MyOu,OU=Clients,OU=Home,DC=bridgeTech,DC=net");
foreach (object dn in dEntryhighlevel.Properties["member"])
{
DirectoryEntry singleEntry = new DirectoryEntry("LDAP://" + dn);
DirectorySearcher dSearcher = new DirectorySearcher(singleEntry);
//filter just user objects
dSearcher.SearchScope = SearchScope.Base;
//dSearcher.Filter = "(&(objectClass=user)(dn=" + dn + "))";
//dSearcher.PageSize = 1000;
SearchResult singleResult = null;
singleResult = dSearcher.FindOne();
if (singleResult != null)
{
string Last_Name = singleResult.Properties["sn"][0].ToString();
string First_Name = singleResult.Properties["givenname"][0].ToString();
string userName = singleResult.Properties["samAccountName"][0].ToString();
string Email_Address = singleResult.Properties["mail"][0].ToString();
OriginalList.Add(Last_Name + "|" + First_Name + "|" + userName + "|" + Email_Address);
}
singleEntry.Close();
}
【问题讨论】:
-
除了将其限制为更小之外,您无法真正更改页面大小。限制曾经是 1000。我有一些代码可以解决这个问题。基本上它以 1000 个记录块返回数据集。我会挖掘出来并发布它。
标签: c# .net active-directory