Oggi
vediamo lÂ’implementazione di un sistema per proteggere le nostre
pagine dellÂ’accesso di persone non registrate. Per fare questo utilizzeremo
i concetti che abbiamo visto nelle puntate precedenti e cioè una
connessione ad un database locale; nellÂ’esempio che vi propongo
ho creato un database in Access chiamato “Magazzino.mdb” all’interno
di questo database ho creato una tabella denominata Users nella
quale sono definiti i seguenti campi: ID (contatore), Nome, Cognome,
UserID, Password più una serie di campi indefiniti che potranno
essere utili in futuro. AllÂ’interno di questa tabella ho inserito
3 utenti e cioè
ID |
Nome |
Cognome |
UserID |
Password |
1 |
Matteo |
Raimondi |
matteo |
789 |
2 |
Enrico |
Zogno |
enrico |
123 |
3 |
Eugenio |
Tiengo |
eugenio |
456 |
Ora andiamo a vedere le pagine ASPÂ Â necessarie.
Nella pagina index.asp non cambia praticamente nulla
se non per il fatto che viene inserito un link alla pagina di log.
Questa pagina lÂ’ho chiamata Logghiamoci.asp al suo interno
ho definito un form che passerà i valori delle sue variabili alla
pagina Autentification.asp con metodo
post. In questo form sono inseriti due campi UserID e Password che
servono proprio per consentire allÂ’utente, che intende logarsi,
di inserire i propri dati. Quando viene ciccato il tasto invia il
form esegue il submit alla pagina Autentification.asp questo non significa altro che passare le variabili
inserite nella pagina dove è definito il form alla pagina di autentificazione.
A questo punto inizia la parte interessante vediamo il codice inserito
:
<%
Dim strConn, objConn, objRs, strsql
Dim VerifyMember, VerifyPass
VerifyMember = False
VerifyPass = False
%>
Qui vado a definire le variabili che mi
servono durante lÂ’elaborazione: strConn, objConn, objRs hanno lo
stesso significato visto in precedenza quando abbiamo realizzato
una connessione a un dababase.
Dim VerifyMember, VerifyPass sono 2 variabili
di tipo booleano infatti immediatamente dopo la dichiarazione vado
ad inizializzarle con valore “False”
Bene ora creo la stringa strsql che andrà a contenere
il codice della query sql da dare in pasto al database: faccio una
select che seleziona tutti i record il cui UserID è quello che ho
inserito.
<%
strsql = “SELECT * from Users where UserID = ‘” &
Request.Form(“user”) & “‘”
%>
Con le righe che seguono vado a realizzare la connessione
con il database.
<%
Set objConn = Server.CreateObject(“ADODB.Connection”)
objConn.Open(“Provider = Microsoft.Jet.OLEDB.4.0; Data Source
= C:/inetpub/wwwroot/database/Magazzino.mdb”)
%>
Ora eseguo lÂ’interrogazione
<%
Set objRs = Server.CreateObject(“ADODB.Recordset”)
Set objRs = objConn.Execute(strsql)
Â
A
questo punto sono arrivato al dunque di tutto: adesso ho il risultato
della mia interrogazione nellÂ’oggetto objRs e devo controllare tutti
i record risultato della selezione e controllare quali di questi
hanno il campo Password uguale alla password inserita nel form.
In realtà il record è uno solo perché non possono esistere 2 utenti
con user e password identici…….cioè non è che non possono esistere
è che non ha senso che esistano……..vabbè lasciamo stare J
Do while NOT objRs.EOF
 If objRs(“UserID”)
= Request.Form(“user”) Then
   VerifyMember = True
 End If
 If objRs(“Password”)
= Request.Form(“pass”) Then
     VerifyPass = True
 End If
objRs.Movenext
Loop
objRs.Close
Set objRs = Nothing
objConn.Close
Set objConn = Nothing
%>
Ora ho controllato tutti i record e ho assegnato
il valore alle variabili booleane a seconda del risultato del confronto,
alla fine chiudo la connessione al database.
Bene ci siamo quasi, adesso confronto le 2 variabili
booleane tra loro e se entrambe hanno valore True allora significa
che lÂ’UserID e relativa Password sono presenti nel DB.
<%
If VerifyMember = “Vero” AND VerifyPass = “Vero”
then
  Response.Redirect(“loginOK.asp”)
Else
  Response.Redirect(“My
errore.asp”)
End If
%>
Ok ragazzi ci siamo, se entrambe le variabili
hanno valore True allora reindirizza il browser alla pagina loginOK.asp
altrimenti reindirizza alla pagina MyErrore.asp; in
questo esempio la pagina loginOK visualizza solo un messaggio ma
ovviamente nessuno ci impedisce di mettere le pagine che volevamo
proteggere.
Bene abbiamo finito, come avete visto realizzare
un accesso protetto è una cosa abbastanza facile quello mostrato
è solo uno dei metodi possibili e probabilmente non è il migliore
ma funziona abbastanza bene.
Comments are closed.