首页 > 其他 > 详细

how to close the old Session - if the same username starts a new Session?

时间:2014-10-26 10:17:16      阅读:293      评论:0      收藏:0      [点我收藏+]

Question:

 want to close the old Session - if the same username starts a new Session

Any ideas how i can do this? - one user should not be able to start the Software unlimited in his company - every user should buy a licence .

Answer:

 

var
  ASessionList: TList;
  I : Integer;
  M : TUniMainModule;
  USession : TUniGUISession;
begin
  ASessionList := UniServerModule.SessionManager.Sessions.SessionList.LockList;
  try
    for I := 0 to ASessionList.Count -1 do
    begin
      USession := TUniGUISession(ASessionList[i]);
      M := USession.UniMainModule as TUniMainModule;
      if M.username = ‘ThisUserName‘ then
      begin
        USession.TerminateAfterSecs(0);
        Break;
      end;
    end;
  finally
    UniServerModule.SessionManager.Sessions.SessionList.UnlockList;
  end;
end;

Question:
 If I want to send a message to another session of the same user before I kill it,how do I do?
Answer:
begin USession := TUniGUISession(ASessionList[i]);
  M := USession.UniMainModule as TUniMainModule;
  if M.username = ‘ThisUserName‘ then
  begin
   M.LMessageStr := ‘Your Session will Terminate after 10 Sec !!!‘;////// <---
   USession.TerminateAfterSecs(10); Break;
   end;
end;

// And in the MainForm. a Timer With this code:
procedure TMainFrm.UniTimer1Timer(Sender: TObject);
begin
 if UniMainModule.LMessageStr <> ‘‘ then
 begin
  ShowMessage(UniMainModule.LMessageStr);
  UniMainModule.LMessageStr := ‘‘;
 end;
end;
 

how to close the old Session - if the same username starts a new Session?

原文:http://www.cnblogs.com/wxb-km/p/4051456.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!