Hallo,
entschuldigt für den komischen Titel, aber mir ist kein treffenderer für folgendes Problem eingefallen:
Ich habe eine WebApplication, auf der ich mittels MemberShipProvider die Benutzer einlogge.
Somit kann ich mithilfe von
Context.User.Identity.Name
immer auf den Namen des aktuellen Benutzers zugreifen.
Soweit - so gut. Auf der Masterpage habe ich ein Logout inzeniert, was folgendermaßen aussieht:
<asp:LoginStatus ID="LoginStatus1" runat="server" Font-Bold="false" font-size="8pt" onloggingout="LoginStatus1_LoggingOut"/>
protected void LoginStatus1_LoggingOut(object sender, LoginCancelEventArgs e)
{
Session.Clear();
}
Bin ich nun auf einer beliebigen Seite (bspw: Seite1.aspx) und betätige den Logout-Button, lädt er die Seite1.aspx trotzdem komplett neu, aber hat nun in dem
Context.User.Identity.Name
nichts mehr inne (leeren String) und jegliche Abfrage mit dieser Variable wirft natürlich Exeptions ohne Ende..!
Meine Frage ist jetzt: Wieso ist das so, dass er einen kompletten Reload der Seite macht, NACHDEM ich den Logoutbutton gedrückt habe?! Mache ich einen Denk- oder Architekturfehler???
Gruß
nitro
Du clearst in der Logout Methode doch nur die Session..
Leite doch danach auf deine Login-Seite weiter.
be the hammer, not the nail!
Hallo Nitro2k7
Wenn du alles richtig gemacht hast, sollte automatisch auf die Login Seite weitergeleitet werden.
Gruss Peter
--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011
Wenn du alles richtig gemacht hast, sollte automatisch auf die Login Seite weitergeleitet werden.
MANN...ja...natürlich! Die Web-Config!!!!
Ich muss die Seiten auch eintragen in der WebConfig und "sperren", damit er sie nicht neu lädt...!
Danke für eure Hilfe..! Für alle, die das selbe Problem haben
<location path="Seite1.aspx">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
etc.
Gruß nitro