Buon giorno e complimenti per il Forum.
Sono Igor, vorrei porre questo quesito.
Ho un sito in ASP , e posso dare ad utenti che lo chiedono uno spazio.
Questo spazio è fatto con un pacchetto content manager CMS, che può dar modo agli utenti di fare upload delle immagini, testi ecc. ecc. senza conoscere una riga di codice, ed è molto comodo per me, perchè basta copiare il contenuto della directory rinominandola (esempio: spazio1 in spazio2) rinominando anche il database ovviamente (è in access), e gli utenti possono, entrando con username e password gestirsi il proprio spazio.
Problema:
L'utente spazio1 entra nel suo spazio autenticandosi e l'accesso è ok.
Se l'utente spazio1 va nelle pagine dello spazio2, può modificarle ! Perchè è riconosciuto come admin. (ovviamente l'utente spazio2 può fare l'opposto oppure su altre pagine di spazio3 spazio4 ecc. ecc.).

Il file per il controllo della sessione dovrebbe essere checksession.asp presente in ogni spazio che ricopio e contiene:

<%
If Session("loginID") = "" Then
Response.Redirect("/?message=not_logged_in")
else
LoginID = Session("LoginID")
end if
%>

Invece il file login_action.asp che segue, si occupa dell'azione del processo di login.

Nel mio caso la tabella è: Logins.
I campi dentro la tabella sono: email è l'user ID (esempio: spazio1) , e mynumber è la password (esempio: passdispazio1).


<%'option explicit%>
<meta http-equiv="expires" content="0">
<%
' Intercept all exceptions to display user-friendly error
'On Error Resume Next

if Request.Form("email") = "" then
Response.Redirect("confirm.asp?l=email_blank")
elseif Request.Form("mynumber") = "" then
Response.Redirect("confirm.asp?l=password_blank")
End If

Dim whtRS, FormLogin, FormPwd, LoginID, DateCode, CookieCode, filespace, filepath, logincount, whtSQL
'set variables from form
FormLogin = Request.Form("email")
FormLogin = replace(FormLogin,"'","''")
FormPwd = Request.Form("mynumber")
FormPwd = replace(FormPwd,"'","''")
%>

<%
'create instance of recordset, and run query
Set whtRS = Server.CreateObject("ADODB.RecordSet")
whtSQL = "Select ID, email, logincount, logindate, passchange FROM Logins where active = 2 and email = '" & FormLogin & "' and mynumber = '" & FormPwd & "';"
'Response.Write whtSQL
whtRS.Open whtSQL, whtConn, 1,3

'run login or return to login page
if not whtRS.eof then
dim email
LoginID = whtRS("id")
email = whtRS("email")
passchange = whtRS("passchange")
Session("LoginID") = LoginID
Session("email") = email
session("passchange") = passchange
logincount = whtRS("logincount")
whtRS("logincount") = (logincount + 1)
whtRS("logindate") = date
whtRS.Update

'SET Cookie for email
if request.form("rememberme") = 1 then
Response.Cookies("email") = email
Response.Cookies("email").Expires = Date + 14
end if

else
whtRS.Close
Set whtRS = Nothing
whtConn.Close
Set whtConn = Nothing
Response.Redirect("confirm.asp?l=incorrect_login_o r_password")
End if

'close connections,etc..
whtRS.Close
Set whtRS = Nothing
whtConn.Close
Set whtConn = Nothing

'final redirect
Response.Redirect appurl & "/admin/default.asp"
%>



Okay it worked!</p>


Come posso fare per rendere ogni spazio amministrabile dal proprio amministratore ?
www.nomesito.info/spazio1/ lo amministra spazio1
www.nomesito.info/spazio2/ lo amministra spazio2
www.nomesito.info/spazio3/ lo amministra spazio3
ecc. ecc.
Potete suggerirmi una modifica dei files allegati che mi permetta di
fare vari livelli di amministratori?? tipo.. spazio1.. spazio2...?

Grazie in anticipo e cordialità,
Igor.