ldap_init関数 (winldap.h)
ldap_init関数は、LDAP サーバーとのセッションを初期化します。
構文
WINLDAPAPI LDAP *LDAPAPI ldap_init(
[in] PSTR HostName,
[in] ULONG PortNumber
);
パラメーター
[in] HostName
ドメイン名を含む null で終わる文字列、または接続先の LDAP サーバーを実行しているホストの IP アドレスを表すホスト名または点線の文字列のスペース区切りのリストへのポインター。 リスト内の各ホスト名には、ホスト自体からコロン (:)で区切られた省略可能なポート番号を含めることができます。 Active Directory サーバーに接続するときに LDAP_OPT_AREC_EXCLUSIVE オプションを使用する方法の詳細については、「解説」セクションを参照してください。
[in] PortNumber
接続先の TCP ポート番号が含まれます。 既定のポート 389 を取得するには、 LDAP_PORT に設定します。 ホスト名にポート番号が含まれている場合、このパラメーターは無視されます。
戻り値
関数が成功すると、 LDAP データ構造へのポインターの形式でセッション ハンドルが返されます。 セッション ハンドルは、不要 になったldap_unbindの 呼び出しで解放する必要があります。
関数が失敗した場合は、NULL が返されます。 LdapGetLastError を使用してエラー コードを取得します。
注釈
ldap_initを呼び出して、LDAP サーバーへの接続ブロックを作成します。 ldap_openとは異なり、ldap_initを呼び出しても接続は開きません。 ldap_connectを明示的に呼び出して、ライブラリにサーバーに接続させることができます。 これは、ローカル タイムアウトを指定する場合に便利です。この場合、 ldap_connectを呼び出す前に、 ldap_initからの接続ブロックを使用して ldap_set_option を呼び出します。 ただし、通常、この呼び出しは不要です。開いている接続を必要とする最初の操作関数は、 呼び出 されていない場合ldap_connect内部的に呼び出されるためです。
関数は、セッションの状態データを維持するために LDAP データ構造を割り当て、この構造体にハンドルを返します。 セッション中にこのハンドルを LDAP 関数呼び出しに渡します。
HostName パラメーターには NULL を指定できます。この場合、実行時に "default" LDAP サーバーの検索が試行されます。 ldap_connectが呼び出されると、ホストは一覧表示された順序で試行され、最初に成功した接続で停止します。 Active Directory サーバーの場合、DsGetDcName 関数を使用してサーバーの名前を取得し、NULL を使用する代わりに HostName パラメーターとして渡すことができます。
ldap_set_option関数を使用して LDAP_OPT_GETDSNAME_FLAGS オプションを設定する場合でも、DsGetDCName に渡されるフラグを指定して、接続先の DC を検出します。 LDAP クライアントは、 DS_ONLY_LDAP_NEEDED フラグを DsGetDCName に渡し、 LDAP_OPT_GETDSNAME_FLAGS が指定するフラグも渡します。
HostName パラメーターに NULL が渡され、呼び出し元のコンピューターが Active Directory ドメインのメンバーである場合、ランタイムは、接続しようとすると、現在のコンピューターがメンバーであるドメイン内の DC を検索します。
HostName パラメーターに NULL が渡され、呼び出し元のコンピューターが Active Directory ドメインの DC である場合、ランタイムは 127.0.0.1 で NULL を切り替え、接続しようとするとループバックを使用してローカル コンピューターに接続します。
HostName パラメーターに Active Directory ドメイン名が渡された場合、ldap_initはそのドメイン内の "既定" LDAP サーバーを検索します。
HostName が NULL またはドメイン名に設定されている場合は、自動再接続が適用されます。 接続の有効期間中に何らかの理由で接続された DC が機能しなくなった場合、LDAP は指定されたドメイン内の別の DC に自動的に再接続します。 この動作は、既定でオンになっている LDAP_OPT_AUTO_RECONNECT セッション オプションを使用して、オフまたはオンに切り替えることができます。
HostName パラメーターに Active Directory DNS サーバー名が渡された場合は、実際の接続を作成する LDAP 関数を呼び出す前に、ldap_set_optionを呼び出して LDAP_OPT_AREC_EXCLUSIVE フラグを設定する必要があります。 これにより、A レコード検索が強制され、ホスト名を解決するときに SRV レコードの参照がバイパスされます。 ダイヤルアップ接続を使用するブランチ オフィスの場合、A-Record ルックアップを使用すると、名前を解決するときにダイヤルアップでリモート DNS サーバーに対して SRV レコードのクエリを実行することを回避できます。
グローバル カタログのポート番号が引数の 1 つとして ldap_init に渡される場合、そのポート番号に渡される HostName は、エンタープライズで GC を正しく検索するために 、DsGetDcName() の基になる呼び出しのフォレストの名前である必要があります。
マルチスレッド: ldap_init の呼び出しはスレッド セーフです。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista |
サポートされている最小のサーバー | Windows Server 2008 |
対象プラットフォーム | Windows |
ヘッダー | winldap.h |
Library | Wldap32.lib |
[DLL] | Wldap32.dll |