03-21-2023, 07:45 PM
(03-07-2023, 07:57 PM)Mikael Nilsson Wrote: Hi,
How do I set different Timeout for different Users?
Please see my answer here:
https://www.atozed.com/forums/archive/in...d-931.html
Of course, in the StopHeartbeatTimer procedure you can have something like:
Code:
procedure StopHeartbeatTimer(AHeartbeatTimer: TIWTimer; ACount: integer);
var
iHeartbeats: integer;
begin
if ACount > 0 then
iHeartbeats := ACount
else
begin
// stop the timer after heartbeats and time out
// a hearthbeat is every 20 seconds, so the timeout its (iHeartbeats * 20) seconds.
if UserSession.LevelString = 'USER' then
iHeartbeats := 30
else if (UserSession.LevelString = 'AGENT') or (UserSession.LevelString = 'COMPANY') then
iHeartbeats := 45
else if (UserSession.LevelString = 'ROOT') or (UserSession.LevelString = 'OPERATOR') then
Exit // do not timeout
else
iHeartbeats := 0;
end;
if AHeartbeatTimer.Tag > iHeartbeats then
begin
AHeartbeatTimer.Enabled := false;
WebApplication.TerminateAndRedirect(...);
end
else
AHeartbeatTimer.Tag := AHeartbeatTimer.Tag + 1;
end;Probably not the best solution, but I've been using it for many years without any issues.

