配信管理サーバのユーザ認証に、ユーザ作成ライブラリによる認証を利用する場合は、出口ルーチンを利用します。そのため、ディレクトリサービスなどを利用する場合は、以下のユーザ作成ライブラリの出口ルーチンを作成しておく必要があります。なお、この出口ルーチンは、リスト管理サーバのユーザ作成ライブラリの出口ルーチンと兼用で作成します。
  | リスト管理サーバのユーザ作成ライブラリの出口ルーチンについては、“環境構築手引書”の“2.3.3 出口ルーチンの準備 <ユーザ作成ライブラリによる認証の場合>”を参照してください。 List Works V10.1以前で作成したユーザ作成ライブラリの出口ルーチンの詳細については、“付録H List Works V10.1以前で作成したユーザ作成ライブラリで使用する出口ルーチン”を参照してください。  | 
利用者情報に変更が発生した場合は、ユーザ作成ライブラリの出口ルーチンに定義している利用者情報を変更します。
注意
配信管理サーバでユーザ作成ライブラリによる認証方法を利用する場合は、リスト管理サーバの認証方法も、ユーザ作成ライブラリによる認証方法を利用してください。認証方法が異なる場合は、正しく動作しません。
ユーザ作成ライブラリの出口ルーチンは32ビットモードで作成してください。
出口ルーチンおよび出口ルーチンからリンクしているライブラリがロードできるように、システム環境変数「Path」を正しく設定してください。
出口ルーチンはマルチプロセスで動作するように作成してください。
出口ルーチンはマルチスレッドで動作するように作成してください。
出口ルーチンはシフトJISコードで記述してください。
設定ファイルなどを利用する場合は、絶対パス指定で参照してください。
ユーザ作成ライブラリの出口ルーチンをリスト管理サーバと兼用するときに、ユーザ作成ライブラリで設定ファイルをカレントディレクトリ指定で参照している場合は、絶対パス指定に変更して参照してください。
環境変数とカレントディレクトリを出口ルーチン内で変更しないでください。
大文字・小文字だけが異なる複数のユーザIDを使用しないでください。このユーザにアクセス権を設定すると、意図しない動作をする場合があります。
出口ルーチン  | 関数名  | 概要  | 
|---|---|---|
ログイン出口  | LW_LDAP_LoginExit  | 配信管理サーバへのログイン時に呼び出されます。ログインのユーザIDとパスワードから、ログインを許可するかどうかを判定します。  | 
出口ルーチンのライブラリ名と格納場所は、以下のとおりです。
ライブラリ名  | 格納場所  | 
|---|---|
lwlogin2.dll ( 呼び出し規約 _cdecl )  | Windowsのシステム環境変数の「Path」に指定されているフォルダ  | 
出口ルーチンの関数定義、出口ルーチンで使用する構造体の形式を格納したヘッダファイルの格納場所は、以下のとおりです。
ファイル名  | 格納場所  | 
|---|---|
lwlogin2.h  | 「List Worksのインストール先フォルダ\Samples」フォルダ  | 
ログイン出口のインタフェース
ログイン出口(LW_LDAP_LoginExit 関数)は、配信管理サーバへのログイン時に呼び出されます。
LW_LDAP_LoginExit 関数のインタフェースを以下に示します。
int LW_LDAP_LoginExit (LOGIN_INDATA2 *lpIndata,
                       LOGIN_OUTDATA2 *lpOutdata)ログイン出口(LW_LDAP_LoginExit関数)は、配信管理サーバへのログイン時に呼び出されます。出口ルーチンでは、入力パラメタとして渡されたログインユーザIDとパスワードから、ログインを許可するかどうかを判定します。許可する場合は、ユーザIDなどのユーザ情報と、そのユーザが所属するグループ情報を出力パラメタに設定して復帰してください。

本関数呼び出し時に設定されるLOGIN_INDATA2構造体のアドレスが設定されています。
本関数復帰時に指定するLOGIN_OUTDATA2構造体のアドレスが設定されています。
LOGIN_INDATA2構造体の内容を以下に示します。
typedef struct
{
    char   iUid[260];       /* ログインユーザID(有効文字数26 バイト) */
    char   iPassword[260];  /* パスワード(有効文字数255 バイト)      */
    int    iMaxReturnNo;    /* 返却可能最大グループ数                */
} LOGIN_INDATA2 ;
  | LOGIN_INDATA2構造体の各メンバの詳細については、“環境構築手引書”の“2.3.3 出口ルーチンの準備 <ユーザ作成ライブラリによる認証の場合>”を参照してください。  | 
LOGIN_OUTDATA2構造体の内容を以下に示します。
typedef struct
{
    char   oUid[260];          /* ユーザID(有効文字数26 バイト)      */
    int    oAdmin;             /* 管理者権限 0:権限なし 1:権限あり */
    long   oAccessibility[4];  /* ユーザの業務権限                   */
} LDAP_USER_INFO2;
typedef struct
{
    char   oGid[260];          /* グループID(有効文字数256 バイト) */
    long   oAccessibility[4];  /* グループの業務権限               */
} LDAP_GROUP_INFO2;
typedef struct
{
    LDAP_USER_INFO2   oUserInfo;     /* ユーザ情報                                   */
    int               oGroupNum;     /* 返却するグループ数(値を格納した数を設定する) */
    LDAP_GROUP_INFO2 *oGroupInfo;    /* ユーザが所属するグループ情報                 */
} LOGIN_OUTDATA2;
  | LOGIN_OUTDATA2構造体の各メンバの詳細については、“環境構築手引書”の“2.3.3 出口ルーチンの準備 <ユーザ作成ライブラリによる認証の場合>”を参照してください。  | 
注意
帳票印刷配信機能では、業務権限は無視されます。
  | 業務権限については、“環境構築手引書”の“2.3.3 出口ルーチンの準備 <ユーザ作成ライブラリによる認証の場合>”を参照してください。  | 
0:正常終了(ログインを許可する)
-1:異常終了
1:指定されたユーザIDは存在しない。
2:指定されたユーザIDのパスワードの有効期限が切れている。
3:指定されたユーザIDが複数登録されている。
4:パスワードに誤りがある。
5:所属グループ数がiMaxReturnNoを超えている。
ユーザの所属グループが「返却可能最大グループ数(構造体LOGIN_INDATA2のメンバiMaxReturnNo)」を超えるときは、復帰値に「5(所属グループ数がiMaxReturnNoを超えている)」を設定し、「返却するグループ数(構造体LOGIN_OUTDATA2のメンバoGroupNum)」に所属グループ数を設定して復帰してください。この場合は、設定された所属グループ数分の返却領域を獲得しなおして、再度、本ログイン出口モジュールを呼び出します。なお、ユーザの所属できるグループ数の最大値は256グループまでです。