再利用可能パーツ 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
   Endif
Endroutine

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!')
   Endif
Endroutine

次は: サービスで HTTPS を利用するよう構成

  • No labels