English
Instant Developer Foundation Documentazione
  • Tutorial applicazioni web
  • Accedere all'applicazione

Eventi di login

copia link
<< Video precedente
Apri in una finestra a tutto schermo.
Video successivo >>

Trascrizione

Scopriamo qualche informazione in più legata alle fasi di partenza dell’applicazione web: all’avvio di una nuova sessione applicativa, è obbligatorio, negli eventi di Startup, assegnare alla proprietà UserRole dell’applicazione un valore tra quelli presenti nell’applicazione ed identificati come Ruoli.

Gli eventi di Startup a cui è possibile sottoscriversi sono 3: evento Initialize, evento OnLoginEvent ed evento AfterLogin: solo due di questi eventi sono utili per poter assegnare un ruolo di accesso: l’evento Initialize e OnLoginEvent; nell’evento AfterLogin ormai siamo nell’applicazione e possiamo aprire videate o eseguire procedure automatiche.

Analizzando l’avvio di una applicazione scopriamo che quando l’applicazione sarebbe pronta viene emesso l’evento Initialize: si esattamente come vi ho detto, in teoria, l’applicazione è pronta per inviare al client tutte le istruzioni di costruzione dell’interfaccia grafica e a ricevere comandi dall’utente, ed invece emette l’evento Initialize e verifica che nel codice sia stata valorizzata la proprietà UserRole.

In caso positivo l’intera interfaccia viene costruita ed è quindi possibile utilizzare l’applicazione, in caso negativo (cioè quando la proprietà userrole non viene valorizzata) l’applicazione rimane in sospeso e al suo posto viene visualizzata una pagina di login. Con tutte le volte che abbiamo eseguito insieme l’applicazione in questi tutorial, come è stato possibile non vedere mai la pagina di login? Semplice, per impostazione predefinita in tutti i nuovi progetti, nell’evento Initialize è sempre presente una riga di codice che assegna il ruolo Amministratore alla proprietà UserRole.

Cancelliamo questa riga di codice e proviamo ad eseguire.

Non assegnando un valore a userrole, viene mostrata la pagina di login: inseriamo delle credenziali qualsiasi e comunque vedete che si riesce ad accedere! Come è possibile? Semplice alla conferma nella pagina di login viene emesso un evento applicazione denominato OnLoginEvent: se guardiamo la sottoscrizione dell’evento troviamo ancora una volta la valorizzazione automatica della proprietà UserRole (quindi per questo motivo siamo riusciti ad accedere con qualsiasi credenziale).

Cancelliamo anche queste due righe e riproviamo:

Adesso basta non riusciamo più ad accedere, perché in entrambi gli eventi Initialize e OnLoginEvent non c’e’ una valorizzazione della proprietà UserRole e quindi non si accede!

Cambiamo il codice controllando nell’evento OnLoginEvent le credenziali inserite nella pagina di login (come notate sono riportati come due parametri nell’evento): tra l’altro a tale scopo abbiamo già previsto un metodo, un metodo statico della classe Utente denominato checkLogin dove passiamo username e password e riceviamo null se le credenziali non sono corrette oppure il documento Utente se sono corrette. Nel caso vi interessi conoscere i dettagli del metodo checkLogin, vi invito a riguardare il tutorial Caricare un documento in memoria della sezione precedente Scriviamo del codice.

Event OnLoginEvent
Utente docUtente = null;
docUtente = UTENTE.checkLogin(Username, Password)
if (docUtente != null)
userRole = docUtente.RUOLO
DataValid = true
Else
setLoginMessage (“Accesso non consentito”)

Mandiamo in esecuzione.

Adesso che ci penso ci siamo fregati con le nostre stesse mani: come facciamo ad accedere all’applicazione, se la tabella Utenti è vuota ? Non riusciamo di certo ad accedere senza utenti.

Torniamo al progetto e direi che potremmo bypassare il problema così: nell’evento Initialize controlliamo quanti record contiene la tabella Utenti; con zero record valorizziamo UserRole ad Amministratore così riusciamo ad accedere, se invece troviamo dei record non valorizziamo e passerà alla pagina di login.

Evento Initialize: Select count(*) From Utenti.

Controllo la mia base dati, la tabella Utenti: Tasto destro Wizard => Mostra dati (un metodo veloce per fare una query e controllare se c’e’ all’interno qualche cosa); qui abbiamo in teoria un utente che è Rossi Bianchi (in teoria è utente di tipo amministrativo), potremmo accedere con le credenziale di Rossi bianchi, io provo a fare faccio rossi rossi (sperando di aver mantenuto le credenziali allo stesso modo). Mando in esecuzione.

Possiamo provare ad accedere (come username rossi come password impostiamo rossi) e accediamo (ovviamente rossi rossi Chrome si lamenta un po’ per la password molto semplice, ma va bene così): siamo riusciti ad accedere.

Proviamo a creare nella tabelle Utenti un’altra utenza (facciamo un Neroni Paolo, Paolo Paolo ) dobbiamo assegnare un ruolo come Operatore e salvare, proviamo ad accedere riavviando l’applicazione, quindi chiudo e ricompilo.

Ecco di nuovo riproviamo Paolo Paolo e riusciamo ad accedere:

Ecco se non vogliamo tutte le volte chiudere l’applicazione e riavviare quando premiamo il pulsante di chiusura dell’applicazione potremmo dire di tornare alla pagina di login: questa è una impostazione (torno nel progetto) che possiamo trovare sull’applicazione: Tasto destro Wizard => Configura parametri. Alla voce Generale abbiamo la voce Pagina di logoff: lasciare vuoto se non si vuole il pulsante, impostare a “???” per tornare alla pagina di login; quindi potremmo inserire “???” così quando l’utente chiude l’applicazione torna alla pagina di login. Salvo.

Pagina di login che ovviamente contenuta nel template grafico, ma è completamente modificabile, con alcune accortezze perché è una pagina HTML particolare però riusciremo a renderla idonea al nostro applicativo: qualche informazione ve la darò nel tutorial successivo

Ultima modifica: 23/03/2021 / Validità: da 20.5.8000

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum

Vedi anche

    Scarica il progetto di esempio You Bb Project.zip