IntraWebを使用してSession管理をしたいのですが
やり方がわかりません。
ご存じの方、教えてください。
具体的には簡単なチャットを作っていて
名前の入力欄に
個々人のブラウザで入力した値を
リロード後や、
再度URLを訪問したときに
保持させたいのです。
よろしくお願いします。
-----
Yamamoto Satoshi
sat...@big.or.jp
的外れな事を言っているのかも知れませんが
Interbaseの話題で埋もれてしまいそうなので
私の乏しい知識で・・・
>IntraWebを使用してSession管理をしたいのですが
Intraweb は基本的に自動的にSession管理されているので
(補足)
Intraweb 8以下だと、DelphiPro版の付属のIntrawebでは
セッション管理が出来ません
Intraweb 9以降を利用するか、以前のフルバージョンを使用する必要があります
>個々人のブラウザで入力した値を
>リロード後や、
この程度の事でしたら
TIWUserSession = class(TIWUserSessionBase)
private
FName: String;
などで変数をセッション管理下に置くことで
個々のセッション変数を参照する事は出来ると思うのですが
セッションを閉じてしまうと消えてしまうので
>再度URLを訪問したときに
>保持させたいのです。
保持させたいというのが、前回の終了状態を復元したいという事でしたら
データーベースか何かに前回の状態を保存しておかないといけないと思うので
たとえば、ログインなどを取り入れてユーザ名で識別するか
初回アクセス時にクッキーを書き込んでおいて
個々の識別をすれば良いのではないでしょうか?
このあたりになると、Intraweb ではという話ではなくなるのですが
IWServerController の OnNewSession イベントとかで
下記のようにクッキーを書き込んでおいて(クッキー情報がない場合)
MyCookies := TStringList.Create;
try
MyCookies.Add('CookieUser=' + WebApplication.AppID);
WebApplication.Response.SetCookieField(
MyCookies,
'',
'',
Now + 365,
False
);
finally
MyCookies.free;
end;
何かのタイミングで書き込んだクッキーを
WebApplication.Request.CookieFields.Values['CookieUser'];
で読み込んで、このキーを元にデーターベースを参照すれば
個々の識別は可能なので目的の事は出来ると思います
もし、IWServerController の SessionTrackingMethod で
tmCookie を指定しているようでしたら
Intraweb_~ の~の部分に AppName が付いたクッキーフィールドが
自動的に作られているので
こちらを参照して個々を判定しても良いかも知れません
ただし、有効期限が短いのでそれらの考慮はいるかも知れません
ほとんど手探り状態ですが
ようやく、IntraWebの感触がわかってきたところです。
> 送信者 "drea...@ace.ocn.ne.jp" <drea...@ace.ocn.ne.jp>
> 日時 2007/04/11 14:45:26
> 件名 [Delphi:89526] Re: IntraWebでのSessionを使う値の保存
> ----
> 渡辺@奈良です
> >IntraWebを使用してSession管理をしたいのですが
> Intraweb は基本的に自動的にSession管理されているので
>
> (補足)
> Intraweb 8以下だと、DelphiPro版の付属のIntrawebでは
> セッション管理が出来ません
> Intraweb 9以降を利用するか、以前のフルバージョンを使用する必要があります
私の環境はBDS2006ですが、スプラッシュウィンドウを見ると
IntraWeb 8 のようですね。
IntraWeb 9 というのは、メーカーから購入するものなのですか?
"以前のフルバージョン"とは、一体なんのことなのでしょうか?
あと、教えていただいてわかってきました。
セッション管理というものは、そもそも
私の必要としている機能ではないようですね。
セッション=ログイン中とわかるもの
というイメージでしょうか。
確か、PerlではCGI動作中にページ遷移しても
変数の値をメモリ保持できる場所だったような気がする。
先に書きました通り、簡単なチャットプログラムで
Aさんが自分のPCで書き込んだ時に、名前欄に[A]と記憶されていて
Bさんが別のPCで書き込んだ時に、名前欄に[B]と記憶されている。
ただ、これだけの仕組みを実装したいだけですので
セッションはいらない、という認識であっていますか?
> 保持させたいというのが、前回の終了状態を復元したいという事でしたら
> データーベースか何かに前回の状態を保存しておかないといけないと思うので
> たとえば、ログインなどを取り入れてユーザ名で識別するか
> 初回アクセス時にクッキーを書き込んでおいて
> 個々の識別をすれば良いのではないでしょうか?
そうですね。クッキーですね。
> このあたりになると、Intraweb ではという話ではなくなるのですが
> IWServerController の OnNewSession イベントとかで
> 下記のようにクッキーを書き込んでおいて(クッキー情報がない場合)
> MyCookies := TStringList.Create;
> try
> MyCookies.Add('CookieUser=' + WebApplication.AppID);
> WebApplication.Response.SetCookieField(
> MyCookies,
> '',
> '',
> Now + 365,
> False
> );
> finally
> MyCookies.free;
> end;
> 何かのタイミングで書き込んだクッキーを
> WebApplication.Request.CookieFields.Values['CookieUser'];
> で読み込んで、このキーを元にデーターベースを参照すれば
> 個々の識別は可能なので目的の事は出来ると思います
データベースは使っていないのですが
どのタイミングで何をどうすればいいのでしょうか?
現在は、
procedure TIWMainForm.IWAppFormRender(Sender: TObject);
ここで読み込み処理をしています。
> もし、IWServerController の SessionTrackingMethod で
> tmCookie を指定しているようでしたら
意味がわかりませんが、これは何の効果があるのでしょうか?
現在はtmURLになっていますが、
何を設定すればいいのかがわかりません。
> Intraweb_~ の~の部分に AppName が付いたクッキーフィールドが
> 自動的に作られているので
『Intraweb_~ の~の部分』の部分とは、何の意味なのでしょう?
> こちらを参照して個々を判定しても良いかも知れません
> ただし、有効期限が短いのでそれらの考慮はいるかも知れません
初歩的なところがわからなさすぎて
内容が理解できなくて、すいません。
-----
Yamamoto Satoshi
sat...@big.or.jp
Yamamoto Satoshi wrote:
snip
> 私の環境はBDS2006ですが、スプラッシュウィンドウを見ると
> IntraWeb 8 のようですね。
> IntraWeb 9 というのは、メーカーから購入するものなのですか?
> "以前のフルバージョン"とは、一体なんのことなのでしょうか?
BDS2006のProfessional版に同梱されている IntraWeb は、たしか機能制限版のはずなので
・BDS2006 Enterprise版 を購入すると同梱されている IntraWeb を使用する
か
・BDS2006用の IntraWeb 8.0 のライセンスをベンダーから購入する
http://www.atozed.com/IntraWeb/Download/Files/Archives/80.EN.aspx
という選択肢があると思います。
最新版の IntraWeb 9.0.x は、まだちょっと不安がありそうです。
9.0.16 がテスト中のようですし...
http://www.atozed.com/IntraWeb/Download/Files/Borland.EN.aspx
--
高橋智宏
Delphi2007の
VCL for Webは
IntraWeb8なのかな?
と疑問に思い調べてみますと
http://www.borland.com/resources/jp/pdf/products/bds/delphi_2007_feature_matrix_ja.pdf
『IntraWeb 9.0アプリケーション配布のための配布マネージャ』
という記述がありますので
IntraWeb9なのですね。
私が希望する程度の機能は、
チャットやBBSを作ることなので、たぶん、どちらのVersionでも
問題にはならないでしょう。
情報助かりました。ありがとうございます。
今後もVersionUpが楽しみです。
デベロッパーキャンプ、がんばってください。
楽しみにしております。
> 送信者 "TAKAHASHI, Tomohiro" <t_tak...@mm.neweb.ne.jp>
> 宛先 Del...@ml.users.gr.jp
> 日時 2007/06/01 14:35:21
> 件名 [Delphi:89690] Re: IntraWebでのSessionを使う値の保存
> ----
-----
Yamamoto Satoshi
sat...@big.or.jp