0

Dominoサーバーに接続して、すべてのユーザー情報(名前、電子メールなど)を取得しようとしています。以下のコードを実行しようとすると、次のエラーが発生します:{"プロトコルエラーが発生しました。\ r \ n"}

私は周りを見回して、LDAPブラウザーでこれと同じクエリを試しましたが、すべて正常に機能しました。アドバイスをいただければ幸いです。

DirectorySearcher search = new DirectorySearcher(new DirectoryEntry("LDAP://server:port"));

        try
        {

            search.Filter = "(objectClass=dominoPerson)";
            search.PropertiesToLoad.Add("cn");
            SearchResultCollection results = search.FindAll();

            foreach (SearchResult r in results)
            {
                DirectoryEntry de = r.GetDirectoryEntry();

                foreach (DirectoryEntry child in de.Children)
                {
                    Console.WriteLine(child.Name);
                }
            }

            search.Dispose();

        }
        catch (Exception msg)
        {
            Console.WriteLine(msg.ToString());
        }v
4

2 に答える 2

3

LDAP ブラウザで認証していますが、コードから認証されていないクエリを実行していますか? 構成設定によっては、Domino が認証されていないクエリを完全に拒否したり、返される属性を制限したりする場合があります。また、コードではなく LDAP ブラウザ接続で BaseDN を指定していますか?

ただし、推測するだけではなく、サーバー側でできるだけ多くの情報を収集することをお勧めします。つまり、Domino サーバーでデバッグ ログを設定して、LDAP 接続と要求に関する情報を取得します。サーバー コマンドset config LDAPDEBUG=7を使用してから、ldap タスクを再起動します。(冗長な出力を少なくするために、最初は 3 に設定できますが、私見では、おそらく最大レベルの情報に進むこともできます。)

セットアップが完了したら、ldap ブラウザでクエリを実行し、Domino サーバーのコンソールを監視します。(表示されているウィンドウの外にスクロールすると、サーバー上の IBM Technical Support フォルダーでログ情報を見つけることができるはずです。) 次に、サーバー コマンド (「show server」など) を入力して、簡単に表示できるコードを実行し、コンソール ログを確認します。

この時点で、ldap ブラウザ接続およびクエリからのコンソール ログ エントリを、コードの接続およびクエリからのエントリと比較できるはずです。違いが解決策につながるはずです。

于 2012-05-16T01:09:34.963 に答える