18.1 クライアント・ベースのセッション

クライアント側のセッションは広義に解釈され、セキュリティ要求がさほど厳しくない、内部のイントラネット・アプリケーションなどで適切な技法です。

Visual LANSA の Web アプリケーションはステートフルです。つまり、クライアントは常にアクティブで、ブラウザは絶えず置き換えられる静的な HTML を表示するだけではありません。その結果、タイムアウトやその他の機能を簡単に処理できる環境にあります。

LANSA は、Visual LANSA アプリケーション・オブジェクト (SYS_APPLN) を使って idle イベントへのアクセスを提供しています。アプリケーション内でマウスまたはキーボードからのアクティビティがなくなると、すぐにタイマーが開始されます。5 秒ごとに idle イベントが起動され、アプリケーションがセッションを終了させるべきかどうかの判断ができるようになっています。

次の例では、ユーザーが 15 分 (900 秒) 間何も入力していない状態であれば、画面に表示されているものを非表示にして、ユーザー ID とパスワードの再入力を促すことが望ましいでしょう。

Evtroutine Handling(#Sys_Appln.Idle) Seconds(#Seconds)
* 15 分間データ入力がなく、タイムアウトではない場合
If ((#Seconds = 900) *And (*Not #MyApplication.TimedOut))
   #MyApplication.ShowSignon
Endif

Endroutine
 

ステートフルな環境を利用して、ユーザーが現在行っていることを隠し制限するオーバーレイにより、すっきりとした処理ができます。有効なサインオンが達成されると、このオーバーレイは取り除かれ、アプリケーションはセッション終了前とまったく同じ位置に表示されます。

クライアント・ベースのセッションは、クライアント側に情報を保管する必要があり、Visual LANSA の Web アプリケーション開発時に、これを行う簡単な方法は、Web アプリケーションのオブジェクトに関連付けられたセッションとローカル記憶域のプロパティを活用することです。詳細については、「11.6 セッション記憶域とローカル記憶域」を参照してください。