- Local time
- Today, 09:41
- Joined
- Feb 19, 2002
- Messages
- 45,792
My initial preference was per named user but that is too hard to manage without a "phone home" ability so I am going with a fixed number of concurrent users. So, the first x people to log in get in. Everyone else gets a license not available error. If they need more concurrent users, they can buy more licenses. This can be easily managed with code in the application. I am not embedding the seat count in the license token. I am keeping the seat licenses separate so the client can add new ones at any time. But I am associating each seat with a token that is verified each time someone logs in. There will be an admin function that allows the admin to free up a license in case someone doesn't log out normally. I already have security code so I can modify that to include the seat license check each time a form is opened.
So a person logs in. The app finds the first license record with an empty login and updates the record with the new user.
If no empty license records exist, the user cannot log in.
The admin can remove the login id from a specific record to allow another user to log in. This opens up a security gap though because it doesn't force the original user to log out because, they might not even be logged in if the record is left locked due to a power outage or other invalid app closure. That leads us to the license check when each new form is opened.
When they buy a new seat license, a new record is added to the license table.
When the annual renewal happens, all license records are deleted and new ones are added.
So a person logs in. The app finds the first license record with an empty login and updates the record with the new user.
If no empty license records exist, the user cannot log in.
The admin can remove the login id from a specific record to allow another user to log in. This opens up a security gap though because it doesn't force the original user to log out because, they might not even be logged in if the record is left locked due to a power outage or other invalid app closure. That leads us to the license check when each new form is opened.
When they buy a new seat license, a new record is added to the license table.
When the annual renewal happens, all license records are deleted and new ones are added.
Last edited: