cookie のステータス管理は、sa_set_http_header システム・プロシージャにフィールド名として 'Set-Cookie' を指定することでサポートされます。ステータス管理に cookie を使用することで、URL にセッション ID を含める必要がなくなります。代わりに、クライアントは HTTP cookie ヘッダでセッション ID を提供します。ステータス管理に cookie を使用することの欠点は、クライアントが cookie を無効にする可能性がある統制のない環境では、cookie がサポートされているかどうかが確実ではないことです。したがって、Web アプリケーションは URL および cookie によるセッション・ステータス管理をどちらもサポートする必要があります。前項で説明した URL セッション ID は、クライアントが URL および cookie セッション ID をどちらも提供した場合に優先的に使用されます。Web アプリケーションは、セッションの有効期限が切れたり、セッションが明示的に削除されたりしたときに (sa_set_http_option('SessionID', NULL) など)、SessionID cookie を削除する必要があります。
DECLARE session_id VARCHAR(64); DECLARE tm TIMESTAMP; SET tm=now(*); SET session_id = 'session_' || CONVERT( VARCHAR, SECONDS(tm)*1000+DATEPART(millisecond,tm)); CALL sa_set_http_option('SessionID', session_id); CALL sa_set_http_header( 'Set-Cookie', 'sessionid=' || session_id || ';' || 'max-age=60;' || 'path=/session;' ); |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |