0

LDAPに取り組んでおり、ローカルマシンにOpenLDAPをインストールし、dc = wave、dc=comとしてRootDSEを作成しました。

そして私はこのコードを使用してこのbaseDNをフェッチしようとしています:

DirectoryEntry directoryEntry = new DirectoryEntry(string.Format("LDAP://{0}", server), "CN=Manager,dc=wave,dc=com", "secret");
string dnPath;
try
{
    dnPath = directoryEntry.Properties["distinguishedName"].Value.ToString();
}
catch
{
    dnPath = "";
}

しかし、それは常に例外になります。また、なぜユーザー名にdn全体を渡す必要があるのですか?

同じことをActiveDirectoryサーバーで試してみると、完全に機能します。また、ユーザー名にdn全体を渡す必要もありません。

何か案が?

4

1 に答える 1

0

System.DirectoryServices 名前空間は、実際には Active Directory でのみ機能します。他のディレクトリを操作する場合は、System.DirectoryServices.Protocols の使用に切り替える必要があります。AD を使用する場合は、さらに優れていることがわかるでしょう。

于 2012-06-22T14:18:14.140 に答える