+ Rispondi al Thread
Pagina 1 di 4 123 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 31

Discussione: Amministrazione spazio

  1. #1
    L'avatar di blackmangi
    blackmangi non è in linea Novello
    Post
    31

    Amministrazione spazio

    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
    %>

    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.
    Grazie,
    Igor.

  2. #2
    net-addiction non è in linea Scolaretto
    Luogo
    Treviso
    Post
    476
    ciao...
    ehmm
    non puoi fare vari livelli di amministratori?? tipo.. admin1.. admin2...?
    oppure aggiungi un altro capo alla tabella e includi lo stesso nell'array di sessione.. e in checksession.asp fai il controllo su quel campo.

    Spero di essere stato chiaro.


    Buona giornata
    - The user formerly known as GRiM[R]eaPeR -

  3. #3
    L'avatar di blackmangi
    blackmangi non è in linea Novello
    Post
    31
    Quote Originariamente inviato da grimreaper
    ciao...
    ehmm
    non puoi fare vari livelli di amministratori?? tipo.. admin1.. admin2...?
    oppure aggiungi un altro capo alla tabella e includi lo stesso nell'array di sessione.. e in checksession.asp fai il controllo su quel campo.

    Spero di essere stato chiaro.


    Buona giornata
    Ciao, e grazie per la risposta.
    Purtroppo non ho abbastanza conoscenze di programmazione ASP.
    Potresti darmi "lumi" ?
    Grazie per l'interessamento...
    Igor.

  4. #4
    net-addiction non è in linea Scolaretto
    Luogo
    Treviso
    Post
    476
    Nel codice, appena hai appurato che un utente è uno dei tre ammnistratori dell'esempio, crei un array:

    sql = "select * from utenti where username = '" & username & "' and password = '" & password & "'"
    set rs = conn.execute(sql) ' cerchi nel db se l'utente esiste e la password è giusta
    if not rs.eof then ' se ha trovato l'utente e la password è esatta
    dim myArray(3) ' crei un array a 4 posizioni
    myArray(0) = rs("id")
    myArray(1) = rs("account") 'admin, viewer , updater
    myArray(2) = rs("username") ' pippo, pluto , paperino
    myArray(3) = rs("spazio") 'spazio1, spazio2 o spazio3
    session("LoginID") = myArray



    cosi.. nelle pagine "protette" facendo un semplice if vincoli l'utente...

    <% if session("LoginID")(3) <> "spazio1" then
    response.redirect "hai_sbagliato.asp"
    else %> Pagina <%end if%>

    poi sta alla fantasia de pizzaiolo.

    - The user formerly known as GRiM[R]eaPeR -

  5. #5
    L'avatar di blackmangi
    blackmangi non è in linea Novello
    Post
    31
    Grazie per l'interessamento..
    Non potrei agire su questo file login_action.asp (credo che sia il file che si occupa dell'azione del processo di login) apportando modifiche ?

    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,"'","''")
    %>
    <!-- #INCLUDE FILE="../common/dbconn1.asp" -->
    <%
    '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"
    %>

    <p>Okay it worked!</p>


    ---------

    Grazie,
    Igor.

  6. #6
    L'avatar di blackmangi
    blackmangi non è in linea Novello
    Post
    31
    Qualcuno potrebbe darmi una mano ?
    Grazie in anticipo..

  7. #7
    Post
    4,741
    Blogs
    12
    Ciao blackmaggi,
    Tempo fa ho riscontrato anche io un problema simile, proprio durante lo sviluppo di un CMS scritto completamente in ASP. Per ovviare al problema ho salvato in una sessione chiamata ad esempio: session("sito") una variabile del server: SCRIPT_NAME che ritorna il valore del percorso virtuale della pagina che stiamo visualizzando.

    In questo modo, da sito web a sito web posso effettuare il controllo delle sessioni, se il valore della sessione risultave diversa dal valore contenuto in SCRIPT_NAME allora chiudo le sessioni, altrimenti continuo la navigazione.

    Ma potevo ricorrere a SCRIPT_NAME poiche' il mio CMS era basato sui moduli, quindi la pagina principale risultava essere sempre "default.asp" mentre le altre avevano un url del genere: default.asp?module=mio_modulo

    Quindi lo SCRIPT_NAME risultava sempre "default.asp"

    Comunque la soluzione per ovviare anche a questo problema c'e', anziche' recuperare lo SCRIPT_NAME, recuperi APPL_PHYSICAL_PATH, ovvero, il percorso fisico dove risiede lo script (nel tuo caso il CMS) ed effettui il controllo su questo parametro.

    Di seguito ti posto il codice *modificato* utilizzato da me che sfruttava SCRIPT_NAME, ovviamente lo devi adattare sostituendolo con APPL_PHYSICAL_PATH.

    codice:
    <%
    if len(session("sito")) = 0 then
    	session("sito") = lcase(Request.ServerVariables("SCRIPT_NAME"))
    else
    	if session("sito") <> lcase(Request.ServerVariables("SCRIPT_NAME")) then
    		session.abandon
    		response.redirect "default.asp"
    	end if
    end if
    %>
    A presto,
    Giuseppe Leone

    P.S.
    Fammi sapere e scusa se ti rispondo solo ora ma sono veramente impegnato con lo sviluppo della nuova versione di MasterDrive.it 2006
    Ultima modifica di Master85; 08-10-2005 18:15 

  8. #8
    L'avatar di blackmangi
    blackmangi non è in linea Novello
    Post
    31
    Ciao e grazie per la risposta.
    Confermo che la pagina è sempre basata su default.asp con moduli...

    Il vecchio checksession.asp conteneva quanto segue:

    codice:
     <%
    If Session("loginID") = "" Then
    Response.Redirect("/?message=not_logged_in")
    else
    LoginID = Session("LoginID")
    end if
    %>
    Ho inserito grazie al tuo suggerimento nel checksession.asp queste righe:

    codice:
     <%
    if len(session("sito")) = 0 then
    	session("sito") = lcase(Request.ServerVariables("/spazio/"))
    else
    	if session("sito") <> lcase(Request.ServerVariables("/spazio/")) then
    		session.abandon
    		response.redirect "/spazio/default.asp"
    	end if
    end if
    %>
    Purtroppo non funziona ancora...

    Igor.

  9. #9
    Post
    4,741
    Blogs
    12
    Beh,
    ci credo che non funziona:

    codice:
    Request.ServerVariables("/spazio/")
    Devi scrivere cosi':

    codice:
    Request.ServerVariables("SCRIPT_NAME")
    Non devi sostituire SCRIPT_NAME

    Fai la prova in un file asp vuoto

    A presto,
    Giuseppe Leone

  10. #10
    L'avatar di blackmangi
    blackmangi non è in linea Novello
    Post
    31
    Ciao e grazie ancora per i suggerimenti..
    nello spazio1 quindi ho aggiornato con questo codice:

    codice:
     <%
    if len(session("sito")) = 0 then
    	session("sito") = lcase(Request.ServerVariables("SCRIPT_NAME"))
    else
    	if session("sito") <> lcase(Request.ServerVariables("SCRIPT_NAME")) then
    		session.abandon
    		response.redirect "/spazio1/default.asp"
    	end if
    end if
    %>
    nello spazio2 ho aggiornato con questo codice:

    codice:
     <%
    if len(session("sito")) = 0 then
    	session("sito") = lcase(Request.ServerVariables("SCRIPT_NAME"))
    else
    	if session("sito") <> lcase(Request.ServerVariables("SCRIPT_NAME")) then
    		session.abandon
    		response.redirect "/spazio2/default.asp"
    	end if
    end if
    %>
    spazio1 e' in www.esempiosito.info/spazio1
    spazio2 e' in www.esempiosito.info/spazio2

    Purtroppo non va...nel senso che spazio1 una volta autenticato, puo' modificare le pagine anche di spazio2...
    Igor.

    Quote Originariamente inviato da Master85
    Beh,
    ci credo che non funziona:

    codice:
    Request.ServerVariables("/spazio/")
    Devi scrivere cosi':

    codice:
    Request.ServerVariables("SCRIPT_NAME")
    Non devi sostituire SCRIPT_NAME

    Fai la prova in un file asp vuoto

    A presto,
    Giuseppe Leone

+ Rispondi al Thread
Pagina 1 di 4 123 ... ultimoultimo

Discussioni simili

  1. Calcolo spazio disco
    Da Carmen nel forum Visual Basic 6
    Risposte: 11
    Ultimo Post: 18-05-2006, 20:10
  2. Determinare lo spazio di una cartella
    Da Carmen nel forum Visual Basic 6
    Risposte: 10
    Ultimo Post: 13-10-2005, 21:49
  3. problema in mozzila
    Da zilucas nel forum HTML, CSS, Javascript, AJAX
    Risposte: 3
    Ultimo Post: 01-07-2005, 14:07

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi