Adapter1.UpdateRecords((WebContext.AdapterRequest as IActionRequest));
SaveSession;
end;
在 使 用 者 登 入 後 , 如 果 判 定 使 用 者 是 第 二 次 登 入 的 話 , 我 們 要 由 資 料 庫 將 Session 取 出 並 還 原 , 我 選 擇 將 她 寫 在 WebUserList.OnBeforeValidateUser 事 件 中 :
procedure THome.WebUserListBeforeValidateUser(Strings: TStrings;
var UserID: Variant; var Handled: Boolean);
procedure LoadSession(AUserID:string);
var
S:TStream;
begin
if WebUserList.UserItems.Count = 0 then
exit;
if not dmData.tbSessionFile.Active then
dmData.tbSessionFile.Open;
if dmData.tbSessionFile.Locate(''''USER_ID'''',AUserID,[]) then
begin
S:=dmData.tbSessionFile.CreateBlobStream(dmData.tbSessionFile.FieldByName(''''SESSION_INFO''''),
bmRead);
try
RestoreSession(Session.SessionID,S);
finally
S.Free;
end;
end;
end;
var
uItems:TWebUserItem;
begin
//process user login
if not dmData.tbEmployee.Active then
dmData.tbEmployee.Open;
if dmData.tbEmployee.Locate(''''FirstName;EmpNo'''',VarArrayOf([Strings.Values[''''Username''''],
Strings.Values[''''Password'''']]),[]) then
begin
uItems:=WebUserList.UserItems.Add as TWebUserItem;
uItems.UserName:=Strings.Values[''''Username''''];
uItems.Password:=Strings.Values[''''Password''''];
uItems.AccessRights:='''''''';
LoadSession(uItems.UserName);
end;
end;
這 樣 我 們 就 完 成 了 保 存 Session 的 程 式 了 , 這 個 程 式 有 個 小 缺 點 , 那 就 是 儲 存 的 範 圍 還 是 太 廣 了 些 , Session 中 可 能 會 有 一 些 暫 存 型 的 資 料 , 我 們 並 不 想 保 留 這 些 資 料 , 但 這 個 程 式 還 是 會 將 這 些 資 料 一 併 存 入 。 在 日 後 的 文 章 中 我 會 重 新 撰 寫 這 個 程 式 , 讓 她 只 存 我 們 所 需 要 的 資 料 。
本 章 後 記
這 一 節 我 們 討 論 了 使 用 者 管 理 及 Session 等 技 術 , 到 這 裡 為 止 這 篇 文 章 的 上 半 段 也 結 束 了 , 接 著 我 們 將 會 進 入 另 外 一 個 階 段 , 詳 細 探 索 WebSnap 的 細 部 行 為 及 一 些 更 進 階 的 應 用 。
<第 六 章 、 執 行 者 : TAdapterDispatcher 及 AdapterAction>
上一页 [1] [2] [3] [聊天工具]Gmail推出新功能:Web Clip__天极Yesky [聊天工具]Web MSN你玩了吗__天极Yesky [系统软件]Web Browser Express 概述 [系统软件]对Internet Explorer Web 控件做一点修改 [常用软件]小技巧:三步实现Web迅雷录制PPLive节目 [常用软件]天网防火墙:打开WEB和FTP服务 [VB.NET程序]使用VB.Net做一个配置web.config功能的WinForm(原… [VB.NET程序]vb.net控件、web service简述 [VB.NET程序]使用vbscript脚本调用web服务 [VB.NET程序]*** Web 存储系统窗体:窗体注册表 (new)***
|