0

LDAP認証を実行できるモジュールを作成するのに問題があります。

ブラウザに次の行を入力してEnterキーを押すと、Windows連絡先アプリケーションがサーバーからのレコードを表示するので、これが接続する正しい場所であることがわかります。

ldap://directory.abc.edu/uid=asmith,ou=People,o=abc.edu

しかし、同じことをコードで使用したい場合、「無効なdn構文」エラーメッセージが表示されます。

これが私のコードです:

public void LDAPResult()
        {           
            using (DirectoryEntry root = new DirectoryEntry(string.Format(@"LDAP://directory.abc.edu/uid=asmith,ou=People,o=abc.edu")))
            {
                using (DirectorySearcher searcher = new DirectorySearcher(root))
                {
                    //This following line give me the error
                    **SearchResultCollection results = searcher.FindAll();**

//The rest is not actually important, I never get there to see if it works properly.
                    StringBuilder summary = new StringBuilder();
                    foreach (SearchResult result in results)
                    {
                        foreach (string propName in result.Properties.PropertyNames)
                        {
                            foreach (string s in result.Properties[propName])
                            {
                                summary.Append(" " + propName + ": " + s + "\r\n");
                            }
                        }
                        summary.Append("\r\n");
                    }
                    Console.WriteLine(summary);
                }
            }            
        }

これに関するどんな助けもとても高く評価されます。ありがとう、

4

2 に答える 2

1

接続先の LDAP ディレクトリはわかりませんが、DN が正しくないようです。

特に「o=abc.edu」の部分。Active Directory (私が最もよく知っているディレクトリ) では、DN は uid=asmith,ou=People,dc=abc,dc=edu になります。abc と edu は明らかに異なる部分であることに注意してください。DC の代わりに O を使用しているため、ディレクトリは AD ではないと推測していますが、ドメイン名の一部は依然として 2 つの o を使用して表されている可能性があります。o=abc,o=edu かな?

于 2012-09-21T19:35:44.927 に答える
0

ここを見たほうがいいかもしれません

DirectoryServices を使用して C# から LDAP に接続する

そしてここ

.Net の LDAP ディレクトリ エントリ - OU=Users で機能しない

特に「new DirectoryEntry(...)」の使用法:)

于 2012-09-21T19:22:33.167 に答える