title: How to implement floating licenses in ASP.NET?
body: <p>What would be a good way to restrict an ASP.NET web application to only serve a given ammount of concurrent users?</p>
  
  <p>Some requirements are:</p>
  
  <ul>
  <li>Application requires login (no need to worry about anonymous users).</li>
  <li>Multiple servers support (farm / load balancing).</li>
  <li>An active user can be considered to be the same as an active session (not signed off or expired).</li>
  <li>Additional logins must be denied if the maximum number of concurrent users has been reached.</li>
  <li>Accountability is needed (administrators should be able to see who the active users are).</li>
  <li>Minimum overhead on each web request (especially avoiding costly trips to a database on each request).</li>
  <li>Total number of concurrent users should be kept correct even if a web server hangs, disconnects from network or has to be restarted.</li>
  <li>Additional servers are available to host services (e.g. application servers).</li>
  </ul>