Wednesday, May 28, 2014

Restrict non-admin users to open multiple sessions in AX

Few times client asked to restrict their users to not open AX sessions multiple times. As It may impact on performance somehow. The following code snipet can do this job for you.

NOTE: Please take backup of your application before copying code

Copy Paste the Following Code in startupPost method of info class in AOT

void startupPost()
   // To restrict user login form second login
   xSession session;
   SysClientSessions SysClientSessions;
   UserId currentUserId;
   int counter;

   currentUserId = curUserId();

   if(currentUserId!="Admin")// Allow Admin User to login multiple time
      while select SysClientSessions
         where SysClientSessions.userId == currentUserId
         &&     SysClientSessions.Status == 1 // 1 : Login 0 : Logout
         session = new xSession(SysClientSessions.SessionId, true);
         if (session && session.userId())

      if (counter >= 2)
         Box::stop("Already Logged-in : The same user id can't log in twice.");

No comments:

Post a Comment

I will appreciate your comments !

Download large bacpac (sandbox database) to DEV environment much faster

As the LCS website gets slower and slower and the database backups get bigger and bigger.  Use AZCopy to download objects out of LCS asset l...