2

次のような .NET/C# を使用して実装された LDAP 検索を使用して、「epersonstatus=REMOVE」であるすべての従業員の「employeenumber」を取得する必要があります。

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 および C# PageResultRequestControl

フローが到達したら:

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

「要求された属性が存在しません」というメッセージとともに DirectoryOperationException が発生します。

softerra のような LDAP クライアントで同じクエリを実行すると、エントリ (1000) とエラーが表示されます。

いくつかの助けをいただければ幸いです。

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 に答える