Domanda

Ecco la situazione:

  1. L'utente accede tramite nome utente / password memorizzati in un database MSSQL
  2. Se l'utente è autenticato, il sistema crea una variabile di sessione con nome utente / password SHA1 e booleana se l'utente ha effettuato l'accesso o meno (per le pagine successive)
  3. Devo essere in grado di distruggere la variabile di sessione. Voglio anche una casella di conferma.

Questo è quello che ho finora:

<script type="text/javascript">
    //<![CDATA[
    function doLogout() {
        try {
            var conf = false;
            conf = confirm("Really log out?");
            if (conf === true) {
                $.post("logout.aspx");
            }
        } catch (ex) {
            alert(ex);
        }
    }
    //]]>
</script>

Poiché è una richiesta Ajax non ricaricare la pagina (la funzionalità funziona bene, la richiesta distrugge la sessione), penso di aver bisogno di un approccio diverso per farlo. Mi piacerebbe davvero poter fare tutto in ASP.NET se possibile.

Qualsiasi soluzione è benvenuta, purché sia ??soddisfatta la terza posizione.

È stato utile?

Soluzione

Bene, per cominciare la tua soluzione dipende dal fatto che l'utente abbia Javascript, in caso contrario non sarà in grado di disconnettersi. Non penso che dovresti usare AJAX per questo, solo un semplice link / pulsante per logout.aspx andrebbe bene, che potrebbe quindi reindirizzarli correttamente alla homepage con lo stato 'disconnesso' impostato. È quindi possibile utilizzare alcuni Javascript discreti per aggiungere la conferma.

versione jQuery (da quando l'hai menzionato):

<a href="logout.aspx" id="logout-link">Logout</a>
<script type="text/javascript">
    //<![CDATA[
    $(document).ready(function() {
        $('#logout-link').click(function () {
            return confirm("Really log out?");
        });
    });
    //]]>
</script>

versione pure-Javascript:

<a href="logout.aspx" id="logout-link">Logout</a>
<script type="text/javascript">
//<![CDATA[
window.onload = function() {
     if(!document.getElementById) return;
     document.getElementById('logout-link').onclick(function() {
         return confirm("Really log out?");
    });
}
//]]>
</script>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top