Warum wird der Wert der Session-Variablen bleiben auch nach all den Code der Zerstörung?
-
09-10-2019 - |
Frage
login.aspx
if (IsPostBack == false)
{
//destroy any login information
Session["password"] = "false";
Session["login"] = "false";
Session.Abandon();
Session.RemoveAll();
}
if (TextBox2.Text == main_password)
{//then he is website server admin
Session["password"] = "password";
Session["login"] = "true";
Response.Redirect("~/TABLE.aspx");
}
table.aspx
//checking if website server admin
if ("password" == (string)Session["password"])
{
link_logout.Enabled = true;
}//if ends
else
{//not authorized
Response.Redirect("~/Identify.aspx");
}//else ends
Wenn ich den Logout-Link klicken
- die Login-Seite geladen wird, was zu Zerstörung aller Sitzungszustände.
- die Login-Seite bestätigt, dass, wenn ich
response.write
verwenden, um die Werte der Session-Variablen anzuzeigen. - wenn ich Benutzernamen und ein Passwort geben und klicken Sie auf Login, es leitet auf Tabellenseite.
- wenn ich auf Logout, es leitet auf Login-Seite und Login-Seite zerstört Info.
Problem
- nach den Login-Daten zerstört, klicken Sie dann auf i Tabelle Link, um die Tabelle auf Seite geht, wie sagen NEIN NEIN und Umleitungen auf Login-Seite.
- aber wenn ich die URL der Tabelle Seite kopieren und einfügen, dann egal, was ich tue, es erlaubt mir die Seite. Das ist es, den Wert der Session-Variablen und auswertet auf TRUE nimmt, auch wenn die Werte zerstört wurden.
Ich kann nicht verwenden asp.net Login Funktionen, meine Grenzen erlauben mir nicht, dass die Kontrolle zu verwenden.
Lösung
Sie im Browser eine Cache-Version der Seite zu sehen.
Wenn Sie Strg + F5 drücken, sollte es gehen weg.
Andere Tipps
Jetzt link_logout eine Linkbutton, legt einen Onclick auf der Seite, und in der den Session-Variablen Onclick zu entfernen. Dann machen Sie eine Antwort des Servers Umleitung.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow