次の方法で共有


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 サーバーを検索します。

HostNameNULL またはドメイン名に設定されている場合は、自動再接続が適用されます。 接続の有効期間中に何らかの理由で接続された 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 の呼び出しはスレッド セーフです。

ldap_init は、LDAP セッションを初期化するための推奨される方法です。 ldap_openの使用は、セッション オプションの設定の使用を妨げるため、現在の LDAP RFC によって大幅に非推奨とされています。
 

要件

要件
サポートされている最小のクライアント Windows Vista
サポートされている最小のサーバー Windows Server 2008
対象プラットフォーム Windows
ヘッダー winldap.h
Library Wldap32.lib
[DLL] Wldap32.dll

関連項目

関数

セッションの初期化

ldap_connect

ldap_open

ldap_set_option

ldap_unbind