Creazione di un'area di accesso riservato
Introduzione
Sulla scorta del Tip Una semplice area di accesso riservato senza DB vediamo in questo più completo Articolo come implementare un reale servizio di protezione di un'area del nostro Sito. In questo caso utilizzeremo un database, per consentire non più ad un solo utente statico, ma ad una serie di utenti registrati, di usufruire di un servizio.
La pagina di Login: login.asp
La logica dell'Applicazione è praticamente identica a quella seguita nel Tip citato in precedenza, solo che si fa riferimento al database database.mdb ed in particolare alla tabella che chiameremo utenti, la quale avrà una serie di campi a scelta e secondo le esigenze dello sviluppatore, tra cui username e password.
Si crei la pagina login.asp, la quale conterrà sia il modulo che il codice Asp per effettuare la connessione alla propria area privata con proprio account-utente; di seguito il codice:
<%@LANGUAGE = JScript%>
<%
var azione = new String(Request.QueryString("azione"));
%>
<html>
<head>
<title>Login</title>
</head>
<body>
<%
if (azione == "OK")
{
var username = new String(Request.Form("username"));
var password = new String(Request.Form("password"));
var username2 = username.replace(/'/g,"''");
var password2 = password.replace(/'/g,"''");
var Cn = new ActiveXObject("ADODB.Connection");
Cn.Open("driver={Microsoft Access Driver (*.mdb)};
dbq=" + Server.MapPath("database.mdb"));
var Sql = "SELECT * FROM utenti WHERE username =
'" + username2 + "' AND password = '" + password2 + "'";
var EseguiLogin = Cn.Execute(Sql);
if (EseguiLogin.EOF)
{
Cn.Close();
Response.Write("ACCESSO NEGATO");
Response.End;
}
else
{
Cn.Close();
Session("username") = username;
with (Response)
{
Write("<p align='center'>");
Write("Benvenuto " + username + "!<br><br>");
Write("Clicca
<a href='areaprivata.asp'>qui</a> per entrare!");
Write("</p>");
}
}
}
else
{
%>
<p align="center">
<form method="post" action="login.asp?azione=OK">
Username
<input type="text" name="username">
Password
<input type="password" name="password">
<input type="submit" value="Login">
</form>
</p>
<%
}
%>
</body>
</html>
La logica seguita è molto semplice: implementiamo la variabile di tipo QueryString azione per controllare lo stato dell'Applicazione, ovvero se l'utente ha eseguito la procedura di login o meno, nel cui caso visualizzerà il modulo. In seguito recuperiamo Username e Password dal modulo e le confrontiamo nel database grazie alla Query
SELECT * FROM utenti WHERE
username = '" + username2 + "' AND password = '" + password2 + "'
cercando l'uguaglianza dei capi username e password all'interno dello stesso record. Se l'operazione è andata a buon fine creiamo una sessione a suo nome
Session("username") = username;
altrimenti neghiamo l'accesso.
Le pagine private
Tenendo sempre come riferimento il Tip citato all'inizio dell'Articolo, vediamo come dovranno apparire le pagine private:
<%@LANGUAGE = JScript%>
<%
if (Session("username") == null)
{
Response.Write("ACCESSO NEGATO");
Response.End;
}
else
{
/*
Ci connettiamo al database e, a seconda dell'Applicazione per cui ci serviamo
di un'area di accesso riservato, recuperiamo i dati dell'utente loggato basandoci
sulla sessione che ha generato, ad esempio:
var Sql = "SELECT * FROM una_tabella WHERE
username = '" + Session("username") + "'";
*/
%>
<html>
<head>
<title>Login</title>
</head>
<body>
<p align="center">AREA PRIVATA</p>
</body>
</html>
<%
}
%>
La pagina di Logout: logout.asp
Per effettuare il Logout sarà sufficiente creare un link verso il file logout.asp che conterrà il seguente codice:
<%@LANGUAGE = JScript%>
<%
Session.Abandon();
Response.Write("<p align="center">ARRIVEDERCI</p>");
%>
Autore: Luca Ruggiero
ASP Base
Corso base sulle Active Server Pages, adatto ai neofiti.Flash MX
Corso sul più famoso programma multimediale disponibile sul mercato.Visual Basic 6
Imparare a programmare col noto linguaggio di casa Microsoft.Javascript e DHTML
Lo scripting lato client con Javascript adatto a qualsiasi livello di esperienza.SQL e Database
Corso completo di guida al linguaggio SQL e ricco di esempi pratici.VBA
Gestire documenti Microsoft Office (Word, Excel ed Acces).Web Design
Gli aspetti del Webdesign, dalla figura professionale a tutti i strumenti.Webmaster Avanzato
Percorso completo volto a formare dei professionisti del Web.
CSS e XHTML
Web Design ed Accessibilità secondo il W3C.
HTML
Corso del linguaggio di marcatura per il Web.
