Working with Licenses is a very difficult question, and depends on different types of connections, and hardest part is, how to get it good working with WEB.
Unfortunately, as web technology does not disconnections, license cannot be released after closing tab or even browser at all. You should have some timeout, and this timeout you can set as default in csp-gateway, or in your application itself. And one change in license politic was made in 2011 version you are talking about. From that version, all web connection now has client's IP address in named licenses. So, if you have guest access in your application, before 2011, version you may do $system.License.Login("guest") for all new connection before real auth, and all that connections were used 1 license unit, but now will be different identifiers such as
gu...@192.168.0.10 or
gu...@192.168.0.20 even the doing nothing in our system, just open login page, and in this case you will use 2 license units, after auth you can change it so do $system.OBJ.Login("john"), and some guest license identifier will change to
jo...@192.168.0.10, and still use the same count of licenses, after logout, you can only change %session.AppTimeout to something quite little number, so, that time should be enought to authenticate