2009-09-02 7 views

risposta

2

Il mio approccio preferito è quello di far apparire un messaggio per dire che la sessione è scaduta, quindi reindirizzare a una pagina di accesso che tornerà alla pagina corrente dopo il login.

+0

Questo è anche l'approccio più facile/più sicuro. – Paul

0

non è sicuro quale framework di ajax si sta utilizzando, ma la maggior parte (incluso asp.net ajax) gestisce le eccezioni del server consentendo di specificare la funzione onError.

Namespace.Object.Method (var1, var2, onSuccess, onError) {..} etc ..

se si lascia che asp.net gestire le sessioni, e fintanto che la pagina in questione sia attivato per gli utenti autenticati solo, il framework genera un'eccezione di sessione non valida quando è scaduta (non ricordo quale esattamente)

all'interno di onError è possibile verificare la presenza di un tipo di eccezione e reindirizzare alla pagina di accesso. in effetti, tutto ciò che devi fare è ricaricare la pagina corrente e .net la reindirizzerà alla pagina di login per te. document.location.href = document.location.href; (questo ricaricherà la pagina corrente ignorando i dati del modulo inviato, se presenti)

1

Uno potrebbe ottenere la vera fantasia con questo. Se AJAX on OnError non è una sessione valida, apri un popup modale (modulo lighbox) con la vista di accesso inserita all'interno. Consentire all'utente di accedere dal modale, quindi non perdono alcun dato sul modulo e non sono stati reindirizzati in tutto il sito. Molto probabilmente, sarà necessario tentare di ripubblicare i loro dati comunque. Potrei fare qualcosa, ma alla fine, penso che sia più semplice per l'utente finale.

PS - Sto pensando all'interfaccia di accesso di Digg.com. Fai clic su aggiungi commento, ottieni il popup modale.

+0

Se si esegue questo metodo, assicurarsi che la richiesta passi attraverso una connessione HTTPS, come per tutti gli accessi. Che, se la tua pagina principale non è HTTPS, dovrai aggirare la politica di origine stessa in JS. – Paul

+0

Sono d'accordo con HTTPS, ma con l'utilizzo di Lightbox non penso che tu debba preoccuparti della stessa origine. Stai chiamando una pagina web vera e propria da aprire in ciò che equivale a un IFrame, compila il modulo, pubblicando il modulo, .NET imposta il cookie. Non ci sono chiamate JS tra le due pagine, ecco perché è necessario inviare nuovamente il modulo una volta impostato il cookie dalla pagina di accesso IFramed. Ora se vuoi lavorare con la stessa origine, allora potresti avere il modulo automaticamente inviato dopo un login riuscito. – Tommy

Problemi correlati