Obiettivo di questo articolo è dimostrare come sia semplice implementare in ASP un sistema di autenticazione degli utenti che visitano il nostro sito. In questo esempio divideremo gli utenti in registrati, moderatori e amministratori, ognuno con la possibilità di visitare sezioni del sito via via più ampie. Ovviamente la soluzione proposta permette di aumentare e diminuire il numero di livelli possibili.
Contenuto dello script
I file contenuti nello script sono diversi:
- default.asp: pagina principale;
- miapaginaX.asp: pagine che appartengono al livello X, il nome non ha nessuna importanza ai fini del funzionamento dello script;
- livelloX.asp: file da includere per decidere a quale livello appartiene una pagina;
- proteggi.asp: file da includere per proteggere una pagina;
- login.asp: form per l'inserimento del nome utente e della password
- autentica.asp: pagina che analizza i dati inseriti in login.asp;
- footer.asp: file da includere per personalizzare la navigazione degli utenti;
- logout.asp: per non essere più autenticati;
- utenti.mdb: database che contiene le informazioni dei nostri utenti;
Il database contiene una struttura del tipo:
Nome | Tipo | Dimensione |
Login | testo | 20 |
Password | testo | 20 |
LivelloUtente | intero | |
Nominativo | testo | 50 |
Principio di funzionamento
Il principio di funzionamento è piuttosto semplice, ma merita di essere analizzato. Le pagine da proteggere devono riportare come prime due righe due include del tipo:
<!--#include file="livello1.asp" -->
<!--#include file="proteggi.asp" -->
Con questo piccolo accorgimento otteniamo l'attivazione del seguente iter:
- livelloX.asp stabilisce a quale livello appartiene la pagina settando la variabile livelloPagina;
- proteggi.asp controlla che l'utente sia passato per una fase di autenticazione e che abbia un livello abbastanza elevato per poter consultare quella pagina: se tutto OK salta al punto 5 altrimenti si passa al punto 3;
- La pagina login.asp raccoglie nome utente e password e li passa ad autentica.asp;
- autentica.asp analizza le credenziali fornite, le confronta con i dati contenuti nel database, setta di conseguenza le session che tengono traccia del percorso seguito dall'utente e rigira il controllo al passo 3 o 1;
- Se non ci sono stati errori si prosegue con la visualizzazione della pagina!
Considerazioni finali
Innanzitutto se decidete di usare questo sistema per qualche sito di produzione, raccomando di spostare il file utenti.mdb in un posto sicuro, perché altrimenti digitando nel browser http://miosito/utenti.mdb si ottiene il database completo e con le password in chiaro: sembra una banalità ma conosco diverse persone che non ci avevano pensato!
Di seguito possiamo dire che il sistema qui esposto gode sicuramente di alcuni punti a favore e altri a sfavore come rappresentato dalla tabella seguente:
Vantaggi | Svantaggi |
|
|
Vedremo magari in un prossimo articolo che gli inconvenienti rilevati si possono comunque eliminare abbastanza facilmente e che a fronte di questi si hanno dei benefici che vanno bene per la maggior parte dei siti web presenti in Internet. Rimango comunque a disposizione per ulteriori chiarimenti in merito.