Session
Session : 4D.Session
| 引数 | 型 | 説明 | |
|---|---|---|---|
| 戻り値 | 4D.Session | ← | Session オブジェクト |
履歴
| リリース | 内容 |
|---|---|
| 20 R8 | スタンドアロンセッションのサポート |
| 20 R5 | リモートクライアントとストアドプロシージャーセッションをサポート |
| 18 R6 | 追加 |
説明
Session コマンドは、カレントのセッションに対応する Session オブジェクトを返します。
コマンドを呼び出したプロセスによって、カレントセッションは次のいずれかです:
- Web セッション(スケーラブルセッションが有効化されている 場合)
- (サーバー上の)リモートクライアントセッション
- ストアドプロシージャーセッション
- スタンドアロンセッション
詳細については、Session types の段落を参照ください。
このコマンドは、以下の場合には Null を返します:
- コマンドがWeb プロセス内で呼び出されているが、Web サーバーではスケーラブルセッションが無効化されている
- コマンドがリモート4D から呼び出されている
Webセッション
Webセッションの Session オブジェクトは、どの Webプロセスからも利用できます:
On Web Authentication、On Web Connection、およびOn REST Authenticationデータベースメソッド- セミダイナミックページにおいて、4Dタグ (4DTEXT, 4DHTML, 4DEVAL, 4DSCRIPT/, 4DCODE) を介して処理されるコード
- "公開オプション: 4DタグとURL(4DACTION...)" を有効化されたうえで、4DACTION/ URL から呼び出されたプロジェクトメソッド
- モバイルリクエスト用の
On Mobile App AuthenticationとOn Mobile App Actionデータベースメソッド - RESTリクエストで呼び出された ORDA関数。
Web ユーザーセッションに関する詳細な情報については、Web Server Sessions の章を参照してください。
リモートクライアントセッション
リモートクライアントの Session オブジェクトは、次のいずれかから利用できます:
- サーバー上で実行 属性を持つプロジェクトメソッド (クライアントプロセスの "双子" プロセスで実行されます)
- トリガー
- ORDA データモデル関数 (
localキーワードで宣言されたものを除く) On Server Open ConnectionおよびOn Server Shutdown Connectionデータベースメソッド
リモートユーザーセッションの詳細については、リモートユーザーセッション の段落を参照ください。
ストアドプロシージャーセッション
すべてのストアドプロシージャープロセスは、同じ仮想ユーザーセッションを共有します。 ストアドプロシージャーの Session オブジェクトは、次のいずれかから利用できます:
Execute on serverコマンドで呼び出されたメソッドOn Server Startup、On Server Shutdown、On Backup Startup、On Backup Shutdown、およびOn System eventデータベースメソッド
ストアドプロシージャーバーチャルユーザーセッションの詳細については、ストアドプロシージャーセッション の段落を参照ください。
スタンドアロンセッション
Session オブジェクトは、スタンドアロン(シングルユーザー)アプリケーション内の任意のプロセスから利用可能なため、4D 開発環境においてSession オブジェクトを使用することで、クライアント/サーバー用のコードを書いてテストすることができます。
スタンドアロンセッションの詳細については、スタンドアロンセッション の段落を参照ください。
Sessionとコンポーネント
Session がプロジェクト内に配置されている異なるコンポーネント のコードから呼び出された場合には、このコマンドは呼び出しリクエストとコンテキストに応じて異なるオブジェクトを返します:
- Web リクエストの場合、
Sessionは常にリクエストのターゲットWeb サーバーにアタッチされているセッションを返します(コンポーネントのWeb サーバーのセッションではありません)。 - サーバー上で実行されたリモートリクエストの場合、
Sessionは常にリモートユーザーにアタッチされたセッションを返します。 - ストアドプロシージャーセッションまたはスタンドアロンセッションの場合、
Sessionは常にシングルカレントセッションを返します(同じオブジェクトが全てのワークセッションにおいて使用されます)。
例題
"公開オプション: 4DタグとURL(4DACTION...)" 属性を有効にした action_Session メソッドを定義したとします。 ブラウザーに次の URL を入力してメソッドを呼び出します:
IP:port/4DACTION/action_Session
//action_Session メソッド
Case of
:(Session#Null)
If(Session.hasPrivilege("CreateInvoices")) //hasPrivilege 関数を呼び出す
WEB SEND TEXT("4DACTION --> Session is CreateInvoices")
Else
WEB SEND TEXT("4DACTION --> Session is not CreateInvoices")
End if
Else
WEB SEND TEXT("4DACTION --> Session is null")
End case
参照
Session storage
Session API
Desktop sessions
Web server user sessions
Scalable sessions for advanced web applications (blog 記事)
プロパティ
| コマンド番号 | 1714 |
| スレッドセーフ | ◯ |