0
我們有一個用Delphi和Intraweb編寫的基於網絡的產品,可以在公共信息亭(全屏)上運行。登錄頁面會話超時信息亭
有什麼辦法可以使用Intraweb來顯示不屬於任何會話(只是一個標準Intraweb頁面)的登錄頁面,所以會話只在用戶成功登錄時創建?
我們有一個用Delphi和Intraweb編寫的基於網絡的產品,可以在公共信息亭(全屏)上運行。登錄頁面會話超時信息亭
有什麼辦法可以使用Intraweb來顯示不屬於任何會話(只是一個標準Intraweb頁面)的登錄頁面,所以會話只在用戶成功登錄時創建?
我們發現這樣做的最佳方式是使用Javascript每隔30秒左右向Intraweb發出一個AJAX請求,以使Intraweb認爲該頁面仍在使用中,因此不會超時。
的Javascript(調用每30秒的IntraWeb的AJAX方法):
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", function(event) {
window.setInterval(function() {
executeAjaxEvent("", null, "ResetSessionTimer", false, null, true);
}, 30000);
});
德爾福(私有方法和註冊回調):
procedure TfrmLogin.ResetSessionTimer(EventParams: TStringList);
begin
//Intraweb does everything for us, we just need this method to exist
end;
WebApplication.RegisterCallBack('ResetSessionTimer', ResetSessionTimer);
IW會議已經開始,當瀏覽器顯示登錄表單?多麼奇怪 - 也許服務器想要提高其使用率統計信息) – mjn
@mjn它們通常在創建新的會話對象時啓動嗎? – SteB
我想這是在Intraweb「設計」。如果我沒有弄錯,大多數其他web框架都會等待創建會話,直到用戶POST登錄表單。因爲沒有關聯(經過身份驗證的)「用戶對象」的會話確實沒什麼用處。但我不知道Intraweb說這個問題沒有解決方案。 – mjn