Ho realizzato un sito che prevede l'accesso tramite autenticazione mediante l'inserimento di una username ed una password.
Per realizzare il codice ASP delle pagine che si occupano dell'autenticazione ho utilizzato Dreamweaver, che mi ha generato automaticamente il seguente codice:
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>
<!--#include file="mioDatabase.asp" -->
<%
// *** Validate request to log in to this site.
var MM_LoginAction = Request.ServerVariables("URL");
if (Request.QueryString!="") MM_LoginAction += "?" + Request.QueryString;
var MM_valUsername=String(Request.Form("nome"));
if (MM_valUsername != "undefined") {
var MM_fldUserAuthorization="LivelloUtente";
var MM_redirectLoginSuccess="../html/asa.htm";
var MM_redirectLoginFailed="erroreitalianostart.asp";
var MM_flag="ADODB.Recordset";
var MM_rsUser = Server.CreateObject(MM_flag);
MM_rsUser.ActiveConnection = MM_mioDatabase_STRING;
MM_rsUser.Source = "SELECT UserNameUtente, PasswordUtente";
if (MM_fldUserAuthorization != "") MM_rsUser.Source += "," + MM_fldUserAuthorization;
MM_rsUser.Source += " FROM Utente WHERE UserNameUtente='" + MM_valUsername.replace(/'/g, "''") + "' AND PasswordUtente='" + String(Request.Form("password")).replace(/'/g, "''") + "'";
MM_rsUser.CursorType = 0;
MM_rsUser.CursorLocation = 2;
MM_rsUser.LockType = 3;
MM_rsUser.Open();
if (!MM_rsUser.EOF || !MM_rsUser.BOF) {
// username and password match - this is a valid user
Session("MM_Username") = MM_valUsername;
if (MM_fldUserAuthorization != "") {
Session("MM_UserAuthorization") = String(MM_rsUser.Fields.Item(MM_fldUserAuthorization).Value);
} else {
Session("MM_UserAuthorization") = "";
}
if (String(Request.QueryString("accessdenied")) != "undefined" && false) {
MM_redirectLoginSuccess = Request.QueryString("accessdenied");
}
MM_rsUser.Close();
Response.Redirect(MM_redirectLoginSuccess);
}
MM_rsUser.Close();
Response.Redirect(MM_redirectLoginFailed);
}
%>
Questo invece è il codice che Dreamweaver mi ha inserito nelle pagine che desidero proteggere:
<%@LANGUAGE="JAVASCRIPT"%>
<%
// *** Restrict Access To Page: Grant or deny access to this page
var MM_authorizedUsers="cliente,tecnico,admin";
var MM_authFailedURL="../../../asp/erroreitaliano.asp";
var MM_grantAccess=false;
if (String(Session("MM_Username")) != "undefined") {
if (false || (String(Session("MM_UserAuthorization"))=="") || (MM_authorizedUsers.indexOf(String(Session("MM_UserAuthorization"))) >=0)) {
MM_grantAccess = true;
}
}
if (!MM_grantAccess) {
var MM_qsChar = "?";
if (MM_authFailedURL.indexOf("?") >= 0) MM_qsChar = "&";
var MM_referrer = Request.ServerVariables("URL");
if (String(Request.QueryString()).length > 0) MM_referrer = MM_referrer + "?" + String(Request.QueryString());
MM_authFailedURL = MM_authFailedURL + MM_qsChar + "accessdenied=" + Server.URLEncode(MM_referrer);
Response.Redirect(MM_authFailedURL);
}
%>
Vorrei modificare il codice ASP in modo da verificare 3 variabili invece delle attuali 2 (username e password).
Chi mi aiuta?
Un saluto