我开发了一个与Directory Server通信并获取用户信息的应用程序。
此应用程序是通用的,可以与Active Directory或任何其他目录服务进行通信。
在我使用此应用程序从Radiant One VDS读取数据的一种情况下,应用程序失败并显示ERROR_MORE_DATA
。以下是返回此错误的代码:
try
{
using (DirectoryEntry de = new DirectoryEntry("LDAP://" + server + "/" + basedn, username, pwd,AuthenticationTypes.None))
{
using (DirectorySearcher Searcher = new DirectorySearcher(de))
{
Searcher.Filter = "(&(objectClass=user))";
Searcher.ReferralChasing = ReferralChasingOption.All;
Searcher.PropertiesToLoad.Add("cn");
Searcher.PropertiesToLoad.Add("memberof");
Searcher.PageSize = 1000;
using (SearchResultCollection allUsers = Searcher.FindAll())
{
foreach (SearchResult user in allGroups)
{
.
.
.
.
}
}
}
}
}
catch(System.Exception ex)
{
}
在上面的代码中,Searcher.FindAll()
返回ERROR_MORE_DATA
。当我搜索时,我找到了this文章。
但是,本文讨论了.NET 1.0,我的应用程序运行.NET 3.5
你能帮助我吗?有没有办法解决这个问题而不用DirectoryServices.Protocols
?
答案 0 :(得分:0)
通常,此问题出现在以下情况中: -
如果在网络中找到一个或多个条目,并且缓冲区大小不足以容纳它。 见ERROR_MORE_DATA
您只需指定缓冲区的大小即可。 见:specify the size of buffer in network call