Gestione della scadenza della sessione utente nell'applicazione Web basata su MVC

0

Abbiamo un'applicazione web basata su MVC 5.

Parte della funzionalità include la visualizzazione della struttura gerarchica come un albero (io uso questo componente JavaScript: link )

Albero è visualizzato nella parte sinistra dello schermo ed è profondo diversi livelli. Ogni livello rappresenta un tipo di oggetto diverso. Quando l'utente fa clic sul nodo dell'albero viene effettuata una chiamata AJAX e i dettagli dell'oggetto esteso vengono ricevuti come Vista parziale e visualizzati nella parte destra dello schermo utilizzando la chiamata jQuery in questo modo: $('#EventTreeElement').html(data);

La stessa logica viene utilizzata per modificare / creare i nodi dell'albero di cancellazione.

Tutto ciò funziona come progettato, nessun problema qui. Fino alla scadenza della sessione di accesso utente. Quando ciò accade dopo che l'utente seleziona un'altra applicazione del nodo dell'albero restituisce una vista per la schermata di accesso e viene visualizzata come un dettaglio dell'albero che confonde gli utenti finali.

Ho implementato una soluzione rapida e semplice per questo in cui ho un elemento nascosto nella pagina di accesso e prima di chiamare $('#EventTreeElement').html(data); Per prima cosa controlla se data contiene il testo per quell'elemento nascosto. In tal caso, viene visualizzata una finestra di dialogo in cui la sessione di accesso è scaduta e reindirizza l'utente alla pagina di accesso.

Tuttavia, poiché la maggior parte delle correzioni "rapide e facili" sembra più di kludge che di una soluzione reale. Ad esempio, ho bisogno di implementare nuovamente la stessa logica di business in tutti i casi in cui l'utente ha fatto clic sui pulsanti "Modifica", "Elimina" o "Crea" per gli elementi dell'albero.

Quali sono le "appropriate" soluzioni architettoniche per questo?

In una delle nostre altre applicazioni legacy ogni pagina include il codice JavaScript che avvia il conto alla rovescia per la durata della sessione di accesso utente. Quando il conto alla rovescia raggiunge lo 0 appare la finestra di dialogo che informa che la sessione è scaduta. Immagino di poter fare qualcosa del genere ma sembra anche un kludge (evento anche se so che alcuni siti web delle banche usano lo stesso approccio).

    
posta Joe Schmoe 21.08.2017 - 18:15
fonte

2 risposte

1

Sembra che tu debba semplicemente reindirizzare a una pagina di accesso quando si verifica la scadenza, invece di rimanere sulla stessa pagina.

A seconda della tua architettura, potresti essere in grado di codificare alcune informazioni nell'URL di reindirizzamento, in modo che quando l'utente si collega di nuovo, vengono riportate nello stesso posto in cui si trovavano prima del reindirizzamento.

    
risposta data 21.08.2017 - 18:49
fonte
0

La scadenza della sessione è una sospensione da quando le variabili Session verrebbero utilizzate per archiviare il lato server delle informazioni.

In questi giorni la tendenza è quella di memorizzare le informazioni per utente in cookie o token. L'invio con ogni richiesta o l'elaborazione lato client.

Se adotti questo approccio, puoi eliminare completamente la scadenza della sessione o estenderla a giorni o mesi prima di richiedere un relogin.

    
risposta data 21.08.2017 - 18:58
fonte

Leggi altre domande sui tag