Layer 06

Procedura di login in ASP

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.

]]>