Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di ertuio
    Registrato dal
    Jun 2010
    Messaggi
    17

    Aiuto autenticazione in ASP

    Salve a tutti.

    Ho appena fatto la cassata di posta in html/xml e ora cercherò di evitare di commettere altri errori di confusione. Premetto tutti che sono nuovo e mastico abbastanza bene html un po' meno JavaScript
    avrei bisogno di un piccolo aiuto riguardo la realizzazione di un paio di pagine html e asp per un homework da consegnare.

    Incollo la specifica nella speranza di avere qualche dritta e qualche "spruzzo" di codice.
    [COLOR=dark-blue]
    La pagina di creazione nuovo utente (NEW) permette ai soli utenti privilegiati di creare un nuovo utente del sistema, contraddistinto dal nickname con cui autenticarsi e dalla sua tipologia (Normale o Privilegiato) specificata tramite due pulsanti mutuamente esclusivi. Il default `e di creare utenti di tipo normale. Quando viene creato un nuovo utente, il valore del suo deposito iniziale `e di 10 Euro. La pagina NEW contiene quindi i suddetti campi, un pulsante CREA NUOVO UTENTE ed un pulsante CANCELLA per cancellare l’eventuale nickname introdotto e ripristinare i pulsanti al loro valore di default, restando nella stessa pagina. Se un utente normale cerca di accedere alla pagina NEW gli deve comparire nel corpo della pagina il seguente messaggio: “Questa pagina `e riservata ai soli utenti privilegiati”.
    [/COLOR]

    Se per caso qualcuno si prendesse la briga di darmi qualche dritta gliene sarei molto grato. Ovviamente aprire una connessione con adodb e accedere al *.mdb non è un problema.

    Quello che mi preme sapere è come mantenere l'autenticazione (un cookie è sufficenete?) e se si come...

    Piccola pretesa: non vorrei una compilazione esatta sulla specifica (voglio che l'homework sia MIO ... ), solo qualche piccolo consiglio sul come mantenere un autenticazione e quali comandi sono consigliati.

  2. #2
    Di solito l'autenticazione si mantiene con l'oggetto Session, se cerchi nel forum trovi numerosi esempi. Ciao
    Chi non cerca trova.

  3. #3
    Utente di HTML.it L'avatar di ertuio
    Registrato dal
    Jun 2010
    Messaggi
    17

    Grazie

    Sono nuovo e purtroppo non ho ancora spulciato bene il sito.

    Grazie ancora.

  4. #4
    Utente di HTML.it L'avatar di ertuio
    Registrato dal
    Jun 2010
    Messaggi
    17

    Aiuto

    allora fino ad ora la pagina di autenticazione.asp per effettuare un log in e quindi per iniziare una sessione è questa

    <html bla bla bla



    <% @LANGUAGE="JScript" %>
    <%
    user_form = Request.QueryString("nick");
    var con;
    var sConString;
    var sSQLString;
    var rst;
    con = Server.CreateObject("ADODB.Connection");
    sConString = "Provider = Microsoft.Jet.OLEDB.4.0; " + "Data Source = " + Server.MapPath("./payments.mdb");
    con.Mode=3; //1 = adModeRead ;
    con.Open(sConString);
    sSQLString ="select * from users where nick = '" +user_form+"'";
    rst = Server.CreateObject("ADODB.Recordset");

    a quanto pare ora debbo controllare come l'user name inserito sia nel DB
    un while è sufficente?

  5. #5
    Utente di HTML.it L'avatar di jonnyl
    Registrato dal
    Dec 2003
    Messaggi
    180
    E' semplicissimo

    1- Crei il form login con metodo post.
    2- crei una funzione che sostituisca gli apici o altri caratteri strani inseriti nel form

    codice:
    user = fixsql(Request.Form("user"))
    password = fixsql(Request.Form("password"))
    set Rslogin = Server.CreateObject("ADODB.RecordSet")
    'fix sql è la funzione che fa il replace di caratteri non validi come apici etc etc se la cerchi nel forum la trovi.

    2- fai la connessione alla tabella

    codice:
    sql="Select * From tabellalogin " 
    sql=sql & "Where user = '"&user&"' "
    sql=sql & "And password = '"&password&"'"
    
    rslogin.Open sql,con,1,3 
    If not RSlogin.EOF Then
    session("autenticato") = true
    Session.Timeout = 60 'in minuti 
    end if
    rslogin.close 
    set rslogin=nothing
    Fatto questo crei un file da includere all'inizio di ogni pagina che vuoi autenticare con dentro scritto:


    codice:
    <% if session("autenticato")<>true then
    response.redirect "login.asp" ' che sarebbe la pagina dove c'è il form di login
    end if
    Puoi anche aggiungere una session con un messaggio di errore che viene mostrato se il login non è valido.
    codice:
    <% if session("autenticato")<>true then
    session("errore")="I dati per il login sono errati o la sesione è scaduta"
    response.redirect "login.asp" ' che sarebbe la pagina dove c'è il form di login
    end if
    ovviamente devi settare il messaggio di errore a null se il login avviene con successo
    codice:
    rslogin.Open sql,con,1,3 
    If not RSlogin.EOF Then
    session("autenticato") = true 
    session("errore")=""
    Session.Timeout = 60 'in minuti
    end if
    rslogin.close 
    set rslogin=nothing
    Ti basterà inserire subito sopra il form o dove vuoi che sia mostrato il messaggio di errore

    codice:
    <% =session("errore") %>
    Kovalsky per gli amici.

  6. #6
    Utente di HTML.it L'avatar di ertuio
    Registrato dal
    Jun 2010
    Messaggi
    17
    grazie 1000! Sei un angelo

    intanto sono riuscito a spiccicare una cosa del genere.

    Prima funzionava ma ora mi da' errore del tipo
    Superato il limite del buffer delle risposte
    O_O

    a quanto ho capito è l'IIS che fa fatica a inviare al client risposte asp superiori a 4 MB
    Ma il file più grande che ho è il database che è appena 400 KB
    mah
    Comunque grazie.
    Quello che posto è una prova di autenticazione e creazione sessione (da un minuto)
    con il metodo get che mi permette di cercare l'input nel database.
    Le risposte mi sembravano corrette fino a quando non ho trovato l'errore del buffer...


    <% @LANGUAGE="JScript" %>
    <%
    user_form = Request.QueryString("nick");
    var con;
    var sConString;
    var sSQLString;
    var rst;
    con = Server.CreateObject("ADODB.Connection");
    sConString = "Provider = Microsoft.Jet.OLEDB.4.0; " + "Data Source = " + Server.MapPath("./payments.mdb");
    con.Mode=3; //1 = adModeRead ;
    con.Open(sConString);
    sSQLString ="select * from users where nick = '" +user_form+"'";
    rst = Server.CreateObject("ADODB.Recordset");
    rst = con.Execute(sSQLString);
    while(!rst.EOF){
    if (SQLstring = 0) then
    Session("username")="user_form" ;
    Session.Timeout=1 ;
    %>
    <p class='testo'> username corretto, sessione in atto. </p>
    <%
    if (SQLstring != 0) then
    Session.Contents.RemoveAll() ; //da rimuovere, chiude tutte le sessioni, riempie il buffer se apro troppe sessioni.
    }
    rst.Close();
    con.Close();
    rst = null;
    con = null;
    %>
    <p class='testo'> sessione per autenticazione fallita username sbagliato, riprova</p>

    OVVIAMENTE è un prova per testare una lettura e da DB e aprire una sessione.

  7. #7
    Utente di HTML.it L'avatar di ertuio
    Registrato dal
    Jun 2010
    Messaggi
    17
    <% @LANGUAGE="JScript" %>
    <%
    user_form =Request.QueryString("nick");
    var con;
    var sConString;
    var sSQLString;
    var rst;
    con = Server.CreateObject("ADODB.Connection");
    sConString = "Provider = Microsoft.Jet.OLEDB.4.0; " + "Data Source = " + Server.MapPath("./payments.mdb");
    con.Mode=3; //1 = adModeRead ;
    con.Open(sConString);
    sSQLString ="select * from users where nick = '" +user_form+"'";
    rst = Server.CreateObject("ADODB.Recordset");
    rst = con.Execute(sSQLString);
    if (!rst.EOF) {
    session("sessione") = user_form ;
    Session.Timeout = 1;
    }
    else{
    Response.write("

    Username errato</p>");
    }
    rst.Close();
    con.Close();
    rst = null;
    con = null;
    %>

    modificato...

    mi da errore in riga 28 Precicamente quando apro la sessione con
    session("sessione") = user_form

    Mi dice -previsto oggetto- o cosa del genere.

    ???

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.