
GAMを使用した環境で、別PC(別ブラウザ含む)でのログインを制限するサンプルコードをご紹介します。
①GAMログイン後、ログインしたGAMUserを取得
②GAMセッションログを取得
1 2 3 4 |
&GAMSessionLogFilter.Status = GAMSessionStatus.Active &GAMSessionLogFilter.IsAlive = True &GAMSessionLogFilter.UserGUID = &GAMUser.GUID // ログインしたユーザーをフィルタに指定 &GAMSessionLogs = GAMRepository.GetSessionLogs(&GAMSessionLogFilter, &GAMErrors) // セッションログの取得 |
③ログイン状態の判定
セッションログが0件であれば、別PCでのログインユーザーなしと判定。
セッションログのコレクション.Count>0の場合は、Tokenを比較し、異なるTokenがある場合は別PCでログインされていると判定。
1 2 3 4 5 6 7 8 9 10 11 12 |
// 現在のセッションとログイン中のセッションを比較する For &GAMSessionLog in &GAMSessionLogs If &GAMSession.Token <> &GAMSessionLog.Token and &GAMSessionLog.Ended.IsEmpty() // ログイン処理後にチェックを行うため、別のトークンがある場合は、別ブラウザでのログイン済みとする &PO_IS_LOGIN = True Exit Else &PO_IS_LOGIN = False EndIf EndFor |
④別PCでログインされていると判定した場合、GAM、Websessionともに、ログアウト処理を行う。