ユーザー属性を読み取り、ユーザーを認証するために LDAP サーバーと通信できるように、.Net アプリケーションに機能を構築しようとしています。OpenDS を使用してテスト ディレクトリ サーバーをセットアップし、カスタム属性とオブジェクトを追加し、新しいオブジェクト タイプでユーザーを追加しました。カスタム属性値を読み取ろうとするまで、すべて正常に機能します。次のようになります。
{"Unknown error (0x8000500c)"}
at System.DirectoryServices.PropertyValueCollection.PopulateList()
at System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry entry, String propertyName)
at System.DirectoryServices.PropertyCollection.get_Item(String propertyName)
この投稿(適切に形成された oid を使用)とこの投稿(LDAP パスに完全修飾ドメイン名を使用 - LDAP://mymachine.company.local/... のようなものを使用しています)から提案を試みました。他の人は、COM エラー コードが E_ADS_CANT_CONVERT_DATATYPE を意味するため、属性またはスキーマに何か問題があることを示唆していますが、属性は DirectoryString として設定されており、同じタイプの他のデフォルト フィールドを読み取ることができます。
OpenDS での作業は Active Directory と同じようには機能しないことを理解しています。私は AD 用の別のモジュールを持っていますが、これは問題なく動作しています。OpenDS または Sun One LDAP 実装とのやり取りの経験がある人がいるかどうか疑問に思っています。
考え?Google で OpenDS と .NET を一緒に扱っているものがあまり見つからないので、何か他のことをすべきだと思います。私が言ったように、AD は問題なく動作しますが、OpenDS でもこれを実行できるようにしたいと思っています。
ありがとう!
さびた