2009-03-03 14 views
0

Hier ist die Situation:Gibt es eine bessere und/oder einfachere Möglichkeit, sich abzumelden?

  1. Benutzer meldet sich über Benutzername/Passwort in einer MSSQL-Datenbank
  2. Wenn der Benutzer authentifiziert ist, macht das System eine Session-Variable mit Benutzername/Passwort SHA1'd gespeichert und boolean wenn der Benutzer ist angemeldet oder nicht (für nachfolgende Seiten)
  3. Ich muss in der Lage sein, die Sitzungsvariable zu zerstören. Ich möchte auch eine Bestätigungsbox.

Dies ist, was ich bisher:

<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> 

Da es eine Ajax-Anforderung ist, wird die Seite (die Funktionalität funktioniert gut, die Anforderung zerstört die Sitzung) nicht neu zu laden, ich glaube, ich brauche ein anderer Ansatz, um dies zu tun. Ich würde wirklich gerne alles in ASP.NET tun können, wenn möglich.

Jede Lösung ist willkommen, solange die obige Nr. 3 erfüllt ist.

Antwort

1

Nun, für Anfänger Ihre Lösung hängt davon ab, dass der Benutzer Javascript, wenn sie nicht sie nicht abmelden können. Ich denke nicht, dass Sie AJAX dafür verwenden sollten, nur ein einfacher Link/Button, um sich abzumelden.aspx wäre in Ordnung, das könnte sie dann korrekt auf die Homepage mit dem Status 'Abgemeldet' umleiten. Sie könnten dann etwas unauffälliges Javascript verwenden, um die Bestätigung hinzuzufügen.

jQuery-Version (da Sie erwähnt, dass):

<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> 

pure-Javascript-Version:

<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> 
+0

Dank! Das funktioniert einfach perfekt. Ich muss mein Javascript auffrischen, es ist ein paar Jahre her: P – Anders

Verwandte Themen