2

我需要使用使用 .NET/C# 实现的 Ldap 搜索来获取“epersonstatus=REMOVE”的所有员工的“员工编号”,例如:

var connection = new LdapConnection("foo.bar.com:389");

connection.AuthType = AuthType.Anonymous;
connection.SessionOptions.ProtocolVersion = 3;
connection.Bind();

var request = new SearchRequest(
                 "dc=root,dc=com",
                 "(epersonstatus=REMOVE)", 
                 SearchScope.Subtree,
                 new string[] { "employeenumber" }); 

由于有成千上万的条目,我正在使用此处建议的分页请求:http: //dunnry.com/blog/PagingInSystemDirectoryServicesProtocols.aspx

我还检查了服务器是否支持此处建议的分页请求: iPlanet LDAP and C# PageResultRequestControl

一旦流量达到:

SearchResponse response = connection.SendRequest(request) as SearchResponse;

我收到带有消息“请求的属性不存在”的 DirectoryOperationException。

通过在像 softerra 这样的 LDap 客户端上运行相同的查询,我得到了条目(一千)和错误。

一些帮助将不胜感激。

4

1 回答 1

3

我有一个类似的问题。

使用分页搜索时,我得到了异常"The server does not support the control. The control is critical.",当使用非分页搜索时,我收到了结果(至少只要过滤器限制了最大数量)。

但是我发现该错误消息具有误导性 - 问题隐藏在身份验证中。

使用AuthType.Basic(或AuthType.Anonymous)我收到了错误。我一切换到AuthType.Ntlm它就工作的公共汽车。

希望这可以帮助...

于 2013-01-10T10:13:10.530 回答