MyCookieスイッチ

 一般に、Webアプリケーションは、従来のクライアント・サーバ方式とは大きな違いがあります。クライアント・サーバ方式では、クライアント側で固有のプログラムが動作するので、クライアント固有の情報を保持できます。
しかし、Webアプリケーションでは、クライアントで動作するのはブラウザです。ブラウザには、クライアント固有の情報を保持するには、つぎの2つの機構しかありません。
1つは、<Input Type='Hidden' Name='Set_R10C5' Value="山田"> などとHiddenを使ってHTMLファイルに埋め込む方式です。しかし、重要な情報をHiddenに埋め込むことは危険です。ご承知のように、ブラウザではHTMLソースはいつでも見られ、改変できてしまいます。
XCuteでは、ユーザ固有の情報を保持する仕組みとして、MyCookieなる仕組みを提供しております。
MyCookieは、キーでユーザ固有情報をサーバ側に保存する仕組みです。実際には、キーに固有番号を使い、Excelのセルの値(ユーザ固有情報)をサーバ側に保存します。キーはHTMLファイルにHiddenで持たせ、セルの値を取り出すときに使用します。HTMLにユーザ固有の情報を埋め込まず、代わりにキーとなる固有番号をHTMLファイルに埋め込む方式です。

書式
MyCookieI_RmCn:RyCx=キー

 RmCn:RyCx
は、保存する情報のセル範囲です。保存する情報が1つのセルの時は、:RyCxは要りません。
キーには、「ユーザーに固有の値」なら何でもよいのですが、通常はR1C1セルの固有番号を利用します。
この書式をR3C7セルに記述すると書き込みで、R1C7セルに記述すると読み込みになります。実際のR3C7に指定した書込みでは、procgiフォルダー mycookie フォルダーに キー.mck0 ファイルを作成し、その中にセル範囲の値を書き込みます。
R1C7の読込では、Hiddenで埋め込まれ戻されたキーで、このファイルを読み出し、指定されたセル範囲に値をセットします。
 I は、0から9の数字で最大10個指定できます。複数指定する場合は、| で上記書式をつなげます。
MyCookie
のタイムアウトは、proles.Ini ファイルで設定します。I=0のタイムアウトは、proles.Ini SecureTimeOut が使われます。I>0のタイムアウトはMyCookie_TimeLogOut1を使います。
実際の用途では、I=0はログイン情報を保持する目的に特化して使用されタイムアウト時間も20分程度を設定しておきます。I>0は、ユーザ毎のデータの保持等の任意の目的に使われ、タイムアウト時間も1440分(1日)と長く設定します。

使用例

 つぎに、MyCookieを使って、ログインした時のユーザ情報を利用する時の例を示します。この例は、弊社のドキュメント&サンプルページにある「アプリケーションテンプレート」です。
R3C7セルで ="MyCookie0_R9C3:R12C3="&R4C1 として、R9C3からR12C3の値をR4C1のキーで書き込んでいます。
R4C1のキーは、R1C2セルで Cookie=R4C1,ProCookie していますので、CookieのProCookie の値がセットされます。また、ProCookieは前のページのR2C8セルで ="Cookie="&R4C1&",ProCokkie" としてセットしたものです。

上記のMyCookie0を読み出すには、R1C7セルにR3C7セルと同じ記述 ="MyCookie0_R4C5:R4C8="&R4C1 とします。
前に述べたようにMyCookieは、ファイルに保存され、その有効期間がタイムアウトで、MyCookie0ではタイムアウトを20分などと短く設定しますので時々R3C7セルで書き込んでやることが必要です。

 前に述べたように、ブラウザがCookieに対応しているものであれば、Cookieコマンドにより、R4C1の値を引き継いでいくことも可能です。こうすることにより、R4C1の値をSetコマンドにより、明示的に引き継ぐ必要がなくなるとともに、URLに固有番号が出ないのでセキュリティも向上します。 具体的な例は、弊社提供のサンプル「アプリケーションテンプレート」を参照してください。

適用位置
ひな型シート R1C7セル(読み出し)、R3C7以降のセル(書き込み)

メモ;
MyCookieのキーを無効にするには、R3C7セルに MyCookie_LogOut=キーの値 とします。

参照
 ○
ひな型シート1行目
 ○ひな型シート3行目
 ○Cookieコマンド
 ○proles.iniファイル