Tips & Tricks: controllare gli accessi

by Giuseppe Lanzi on 4 marzo 2014

Un’esigenza relativamente comune a chi sviluppa applicazioni online è la possibilità di controllare gli accessi contemporanei. Se il vostro business ruota attorno ad un prodotto software installato sul vostro server di produzione e alle licenze d’uso acquistate dai vostri clienti, probabilmente avete bisogno di rispondere alla domanda “come faccio a limitare gli accessi contemporanei all’applicazione?”.

La prima soluzione che viene alla mente è controllare gli utenti che hanno effettuato il login e limitare il numero di accessi contemporanei, ma non è una strada percorribile perché basta usare sempre lo stesso username per aggirare il controllo. Ci vuole qualcosa che non possa essere modificato dall’utente finale e possibilmente di già disponibile. Una buona idea potrebbe essere memorizzare l’ID della sessione corrente.

Ho fatto un piccolo progetto di esempio nel quale per ottenere il comportamento desiderato ho usato una tabella Sessions per memorizzare i dati e l’evento onBrowserMessage per effettuare il controllo: se al momento della richiesta esistono altre sessioni per l’username che ha effettuato il login do errore e chiudo l’applicazione, se invece non ce ne sono inserisco/aggiorno quella corrente.

Per vedere il comportamento descritto potete:

  • compilare il progetto di esempio;
  • entrare nell’applicazione con l’utente test;
  • cambiare browser e cercare di entrare prima con test e poi con test2. La prima volta riceverete un errore mentre la seconda riuscirete ad entrare.

Una volta ottenuto questo comportamento è relativamente semplice estenderlo per implementare funzionalità più evolute, come il numero massimo di accessi per azienda, ma lascio a voi questo piccolo esercizio :)

{ 1 comment… read it below or add one }

1 Mauro Marini 6 marzo 2014 alle 10:37

Grazie!!! Utile davvero.

Leave a Comment

Previous post:

Next post: