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 lho 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 allutente, 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 lelaborazione: 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 linterrogazione
<% 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 nelloggetto 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 lUserID 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.
]]>