.NET が提供する PrincipalContext クラスを使用して LDAP サーバーに接続しようとしています。このリンクでテスト用に次のパブリック LDAP サーバーを見つけました: http://ldapwiki.willeke.com/wiki/Public%20LDAP%20Servers。
以下は、LDAP サービスへの接続に使用したコードです。
PrincipalContext dc = new PrincipalContext(ContextType.Domain, "directory.verisign.com");
リンクで提供されている LDAP サーバーはパブリック LDAP サーバーであり、認証は必要ありません。したがって、LDAP サーバーに接続するためのユーザー名やパスワードは渡しません。これらの各ドメインのユーザーのユーザー名とパスワードをそれぞれ渡すことで、ネットワーク上のローカル ドメイン コントローラーと別のドメインに接続することができました。
上記のコードを使用して、ユーザー名とパスワードを使用してローカル ドメイン サーバーに接続すると、行が正常に実行され、必要に応じて値を取得できます。しかし、上記のリンクで提供されているパブリック LDAP サーバーに接続しようとすると、コードから NullReferenceException が発生し続けます。つまり、上記の宣言行が NullReferenceException をスローします。私はグーグルで検索しましたが、公開サーバーに対して常に NullReferenceException を取得している理由を理解できません。パブリック LDAP サーバーはユーザー名やパスワードを必要としないと言われているので、コードは問題なく実行されているはずだと思います。
誰かがこれが起こっている理由を説明してください。また、それらのサーバーに接続するためのソリューションは何ですか。
コードがセキュア LDAP サーバーとパブリック LDAP サーバーの両方で機能することを証明する必要があるため、これらのサーバーに接続する必要があります。