再利用可能パーツ ExternalWindowsUserServices が完成したので、このテストを行います。
TestWindowsUserServicesModule という名前のサーバー・モジュールを作成し、次のコードをこのサーバー・モジュールに追加します。
* フィールドDefine Field(#Fld_Domain) Type(*NVARCHAR) Length(200)Define Field(#Fld_UserName) Type(*NVARCHAR) Length(200)Define Field(#Fld_Password) Type(*NVARCHAR) Length(1000)
* サーバー・ルーチンSrvroutine Name(TestAuthenticateUser) Field_Map For(*INPUT) Field(#Fld_Domain) Parameter_Name(Domain) Field_Map For(*INPUT) Field(#Fld_UserName) Parameter_Name(UserName) Field_Map For(*INPUT) Field(#Fld_Password) Parameter_Name(Password) Field_Map For(*OUTPUT) Field(#Fld_Message) Parameter_Name(Message) * ExternalWindowsUserServices 再利用可能パーツのインスタンス作成 Define_Com Class(#ExternalWindowsUserServices) Name(#Services) * 呼び出しステータス・オブジェクトのインスタンス作成 Define_Com Class(#ExternalServiceInvocationStatus) Name(#Status) * 'Authenticate' メソッドの起動 #Services.Authenticate Domain(#Fld_Domain) Username(#Fld_UserName) Password(#Fld_Password) Invocationstatus(#Status) * OK ではない場合、エラー・メッセージを取得 If (*Not #Status.OK) #Fld_Message := #Status.ErrorMessage EndifEndroutine
Web ページを作成して、サーバー・モジュールを呼び出します。
Evtroutine Handling(#Com_owner.Initialize) Define_Com Class(#TestWindowsUserServicesModule.TestAuthenticateUser) Name(#Authenticate) Define_Com Class(#PRIM_DC.UnicodeString) Name(#Message) * サーバー・ルーチン経由で Copy サービスを起動 * ソースとターゲット・ファイルのパスは要調整 #Authenticate.Execute Domain('MyDomain') UserName('MyUserName') Password('MyPassword') Message(#Message) * サーバー・ルーチンがエラー・メッセージを返しているか確認 If (#Message.CurChars > 0) #SYS_WEB.Alert( #Message ) Else #SYS_WEB.Alert( 'All good!') EndifEndroutine