NEWSLETTER " EPPYNET.COM - Corso Linguaggio ASP, 4 lez " del 25/03/2006

Creiamo la sezione protetta del nostro sito

In collaborazione con: DEVSPY.COM

In molti siti internet vi sarà capitato di notare la classica "AREA RISERVATA", una sezione il cui accesso è consentito ai soli utenti registrati, possessori di un NomeUtente e di una Password che permette loro di accedere e interagire con le pagine presenti in tale sezione. In questo articolo analizzeremo come creare la nostra area riservata .

Creare il database

Per prima cosa è necessario creare il database contentente nome utente e password di tutti coloro a cui è consentito l'accesso nell'area riservata. Se decidiamo di utilizzare MS Access, creiamo un database chiamato utenti.mdb ed inseriamo una tabella che chiameremo Utenti , la quale conterrà 3 campi:

Campo
Descrizione
ID Chiave primaria (identificativo univoco)
NomeUtente Nome di login dell'utente
Password Password personale

Ecco ciò che dovreste ottenere:

Struttura del database

Nel caso in cui vogliate utilizzare un diverso tipo di database, la struttura sarà del tutto analoga. A questo punto inseriamo dei nomi utente e delle password a nostra scelta; tali dati ci permetteranno di testare successivamente lo script che stiamo realizzando.


Creare la homepage

Supponiamo di avere la nostra homepage, che chiameremo index.asp , con tutti i suoi contenuti e con il form che permette l'accesso all'area riservata (nella posizione in cui preferite). Per motivi di semplicità e chiarezza, nella homepage di questo esempio visualizzeremo solo il form di accesso:

<HTML>
<HEAD>
<TITLE>Autenticazione utente tramite password</TITLE>
</HEAD>
<BODY BGCOLOR="#BBBBFF">
<BR><BR><BR><BR><BR>
<FORM ACTION="login.asp" METHOD="POST">
<TABLE ALIGN="CENTER" BORDER="0" BGCOLOR="#000000">
<TR BGCOLOR="#EEEEEE">
<TD WIDTH="150" ALIGN="CENTER">NOME UTENTE</td>
<TD>
<INPUT TYPE="TEXT" NAME="nome_utente" SIZE="20">
</td>
</TR>
<TR BGCOLOR=#EEEEEE>
<TD WIDTH="150" ALIGN="CENTER">PASSWORD</td>
<TD>
<INPUT TYPE="PASSWORD" NAME="password" SIZE="20">
</TD>
</TR>
<TR BGCOLOR="#EEEEEE">
<TD HEIGHT="30" COLSPAN="2" ALIGN="CENTER">
<INPUT TYPE="SUBMIT" NAME="show" VALUE="LOGIN">
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>

Come potete notare, il form contiene un campo per l'immissione del nomeutente , uno per l'immissione della password e un bottone per inviare i dati alla pagina login.asp che effettuerà il controllo sui dati inseriti.

Pagina di autenticazione

E' ora il momento cruciale dell'articolo, cioè la creazione della pagina che controlla nome utente e password e consente o meno l'accesso all'area riservata. Ecco il contenuto del file login.asp :

<%
Dim nome_ut
Dim pass
nome_ut = Replace(Request.Form("nome_utente"), "'", "''")
pass = Replace(Request.Form("password"), "'", "''")

Dim cn
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "driver={Microsoft Access Driver (*.mdb)};" & _
"dbq="&Server.MapPath("utenti.mdb")

Dim sql
sql = "SELECT ID FROM Utenti WHERE NOMEUTENTE='" & _
nome_ut & "' AND PASSWORD='" &pass& "'"

Dim rs
Set rs = cn.Execute(sql)

Dim autenticato
if rs.eof then
autenticato = false
else
autenticato = true
end if
rs.Close
cn.Close

Set rs = Nothing
Set cn = Nothing

if autenticato = true then
Session("Autenticato") = "OK"
Response.Redirect("riservato.asp")
else
Response.Redirect("index.asp")
end if
%>

Lo script login.asp raccoglie nome_utente e password provenienti dalla form della home page e li memorizza nelle variabili nome_ut e pass. Da notare che gli eventuali apici (') immessi nella form vengono sostituiti con un doppio apice (''); questo è un passaggio molto importante e necessario se si vogliono evitare spiacevoli inconvenienti nella regolare esecuzione dello script. Gli apici infatti possono causare degli errori nella corretta composizione della stringa SQL che utilizzeremo per interrogare il database.

Successivamente viene composta la stringa SQL, che cerca nel database un record che abbia nome utente e password corrispondenti a quelli immessi nella form.

Se il recordset risultante è vuoto , significa che nel database non è stata trovata la corrispondenza delle due variabili e quindi l'utente non è autenticato ; nel caso contrario, l'utente è presente nel database, ed ha inserito la password corretta.

Nel primo caso, il navigatore viene reindirizzato alla home page ; nel secondo caso, invece, l'utente viene inviato alla pagina riservato.asp e, punto molto importante, viene creata una variabile di sessione chiamata Autenticato , a cui viene assegnata la stringa "OK". Questa variabile è importante, in quanto ad ogni accesso ad una pagina dell'area riservata (durante la medesima sessione), verrà verificata la sua presenza. Nel caso essa non sia presente o non abbia valore "OK", il navigatore verrà reindirizzato alla pagina index.asp. Tutto ciò può apparire una futile precauzione, ma supponiamo che un navigatore "malintenzionato" venga a sapere che la pagina riservata del nostro sito ha come URL:

http://www.miosito.com/riservato.asp

A questo punto, per scavalcare la protezione, gli basterebbe andare direttamente a tale URL senza passare attraverso la home page del nostro sito, e la nostra "barriera" risulterebbe perfettamente inutile. Controllando invece, ad ogni pagina dell'area riservata, la presenza della variabile di sessione Autenticato, la protezione non potrà essere oltrepassata.

In seguito è riportato il codice di riservato.asp :

<%
if Session("Autenticato")<>"OK" then
Response.Redirect("index.asp")
end if
%>

<HTML>
<HEAD>
<TITLE>Area riservata</TITLE>
</HEAD>
<BODY BGCOLOR="#BBBBFF">
<BR><BR><BR><BR><BR>
<DIV ALIGN="CENTER">
<H1>PAGINA RISERVATA</H1><BR>
<H2>UTENTE AUTENTICATO</H2><BR>
</DIV>
</BODY>
</HTML>

Questa sarà la sezione riservata del vostro sito. Nella parte iniziale viene verificata la presenza della variabile di sessione che indica se l'utente ha effettuato il login o meno. Il resto della pagina potrà essere modificato secondo le vostre esigenze.

 

 

CORSO DI ASP
Parola segreta per scaricare la lezione: CORSOASP4
Per non intasare la tua casella di posta abbiamo riservato una pagina con accesso riservato per scaricare i file contenenti le lezioni. Accedi da qui:


Puoi scaricare la lezione del corso di Asp utilizzando i pulsanti in basso.

Scarica la lezione Indice del corso Contatta la redazione

Copyright EPPYNET.COM® 2000 All right reserved
Home | Privacy e Policy | Faq | Contatti

 
IL NOSTRO PARTNER

DevSpy.com : è un portale IT indipendente dedicato ai programmatori che sviluppano applicativi, componenti e servizi per i sistemi Microsoft Windows.

Ricevi questa newsletter perche' ti sei volontariamente iscritto ai servizi gratuiti di EPPYNET.COM.
I tuoi dati sono strettamente confidenziali e non verranno ceduti a terzi.
Per consultare il testo completo sulla privacy puoi visitare la sezione dedicata disponibile in home page.
Per modificare, cancellare i tuoi dati o iscriverti ad altre newsletter usa il pannello di controllo che trovi in Home Page.
Per accedere usa la tua email: subemail e la tua password: subpasscode
Se invece desideri cancellarti da questa lista clicca unsubscribelink