Gestire un’autenticazione con ASP e SQLServer

20 marzo 2006

Sicuramente vi sarà capitato di dover gestire l’accesso ad aree protette da login e password all’interno di siti web. In questo articolo riprendiamo questo tema ma con alcune varianti.

Un cliente ci chiede di sviluppare un’area riservata contente informazioni e documenti destinati solamente a certi utenti web. L’accesso a quest’area deve essere vincolato non solo alle login valide formate da username+password, ma anche da:

  • un flag di abilitazione (per attivare o disattivare l’account rapidamente)
  • una data di scadenza dell’account (oltre a quella data non è più permesso l’accesso)
  • il numero di visite fatte dall’utente (es. un account potrebbe avere una validità per 100 visite un altro per 50)

Vediamo in breve le specifiche funzionali di questa applicazione (in parole povere cosa fa):

  • autenticazione standard tramite username e password (login)
  • validazioni aggiuntive per numero di visite effettuate e data di scadenza dell’account
  • registrazione delle statistiche degli accessi all’area per ogni singolo utente

L’applicazione è sviluppata in un ottica multi-strato:

  • ASP 2.0 e Javascripts per la parte scripting e presentazione
  • Transact-SQL per le regole logiche (incapsulate all’interno delle stored procedure)
  • SQL Server 7.0 per il supporto ai dati

Le pagine ASP

common.asp – contiene le routines di accesso al db (creazioni degli oggetti connection, recordset e command) e per la chiamata alle stored procedures

esci.asp – contiene le routines per disconnettersi dal db e distruggere gli oggetti creati

entra.asp – è la form HTML di login

valida.asp – processa la validazione chiamando le opportune stored procedure e setta una variabile session per indicare la validità dell’account durante la navigazione nel sito

pagina.asp – pagina di benvenuto nell’area riservata del sito

messaggi.asp – contiene una routines per la gestione dei messaggi di errore sia dalle stored procedures sia dalle pagine asp

Le Stored Procedures

P_Login – Valida l’accesso al sito a seconda delle varie restrizioni

P_InserisciStats – Inserisce le statistiche

Il diagramma del database

Diagramma

Il database che ho sviluppato è molto semplice, è composto da due tabelle:

LOGIN – contiene i dati degli account dei vari utenti del sito

LOGIN_STATS – contiene i dati statistici di accesso al sito dei vari account

La chiave primaria nella seconda tabella è composta dai due campi loginID e data_login. Esiste una relazione tra le due tabelle, ovviamente nel campo loginID in LOGIN_STATS non possono esistere valori che non siano esistenti nel campo #id in LOGIN.

Come provare l’applicazione

Il file zip che potete scarica contiene:

  • autenticazione_asp.zip è il files con le pagine asp
  • sql_scripts.zip contiene gli script per la creazione delle tabelle e delle stored procedure

Per testare questa semplice applicazione ASP dovete fare alcuni passi.

Sul database

  • Scaricare in una directory il contenuto del file zip sql_scripts.zip
  • Aprire l’Enterprise Manager e creare un nuovo database, chiamatelo CorsoFreeASP, lo useremo anche in seguito per gli altri esempi
  • Dopo aver creato il database aprite il Query Analyzer collegatevi al vostro database CorsoFreeASP e caricate gli scripts SQL per la creazione delle tabelle e delle stored procedured, in sequenza
  • Apri il file crea_db.sql e premi F5 per eseguire i comandi contenuti nel file
  • Apri il file sp.sql e premi F5 per eseguire i comandi contenuti nel file

Sul web server

  • Creare una nuova directory virtuale nel vostro web server PWS o IIS che sia
  • Scaricare nella nuova directory il contenuto del file zip autenticazione_asp.zip
  • aprire il file common.asp con il vostro editor di testo preferito e cambiare i parametri della stringa di connessione con quelli del vostro database

Ora siete pronti, aprite il browser e collegatevi alla vostra directory.

Scarica il file “autenticazione_asp.zip”

Scarica il file “scripts_sql.zip”

Se vuoi aggiornamenti su Gestire un'autenticazione con ASP e SQLServer inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Gestire un'autenticazione con ASP e SQLServer

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento dei dati per attività di marketing