0

過去4日間、asp.netからOpenLDAPサーバーに接続しようとしましたが成功しませんでした。私が髪を引っ張る直前に、誰かがうまくいった解決策を持っている可能性があります(つまり、c#asp.netを使用してOpenLDAPサーバーに接続します)。どうやら私はputty.exeからLDAPサーバーにアクセスして検索を行うことができます。さらに、LDAPモジュールを追加したことを考えると、DrupalCMSのローカルインストールを使用した認証にLDAPサーバーを問題なく使用できます。私の問題は、asp.netで同じことをしていることです。具体的な詳細は次のとおりです。

LDAPサーバーはサンソラリーでホストされています。開発マシンはWinXPService Pack 3を実行しています。パテで正常に使用したユーザー名とパスワードを使用してbindを呼び出そうとすると、エラーが表示されます。

    string hostNameAndSSLPort = "ipaddress";
    string userName = "username";
    string password = "password";

    // establish a connection
    LdapConnection connection = new LdapConnection(hostNameAndSSLPort);

    // create an LdapSessionOptions object to configure session
    // settings on the connection.
    LdapSessionOptions options = connection.SessionOptions;

    options.ProtocolVersion = 3;


    options.SecureSocketLayer = true;

    connection.AuthType = AuthType.Basic;

    connection.Credential =
    new NetworkCredential(userName , password );

    try
    {
        connection.Bind();
    }
    catch(Exception e){
         lblSecurity.Text = e.Message;
    }

options.StartTransportLayerSecurity(null);を使用してTLSを開始しようとしました。同じエラーでbindを呼び出す前に持続します。何が間違っているのでしょうか?助けてください!!!!!!!!

4

3 に答える 3

0

このようなコード:

LdapConnection connection = new LdapConnection(new LdapDirectoryIdentifier(this._domain,     Convert.ToInt32(this._port)));
connection.SessionOptions.VerifyServerCertificate = new VerifyServerCertificateCallback((con, cer) => true);
connection.SessionOptions.ProtocolVersion = 3;
connection.AuthType = AuthType.Basic;       
connection.SessionOptions.SecureSocketLayer = true;
于 2012-10-22T06:00:49.760 に答える
0

機能するサンプルコードについては、この回答を参照してください。 ローカルにインストールされた OpenLDAP サービスに接続するにはどうすればよいですか?

XPの使用について言及しています。XP での winldap の TLS 実装の問題を修正するホット フィックスがあると思います。マイクロソフトのサイトで検索する必要があります。どこかのテクネットのページに埋もれていたのを覚えています。

また、.net/winldap で TLS を使用しないでください。あなたの Web サイトは、CPU が強制終了されるまで無作為にペグアウトするのはなぜなのか、頭を悩ませることでしょう。上記の答えには説明があります。SSLを使用するだけです。

于 2012-07-16T18:39:34.627 に答える