Perché il valore della variabile di sessione rimangono anche dopo tutto il codice di distruzione?
-
09-10-2019 - |
Domanda
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
quando clicco sul link di logout
- della pagina di login viene caricato, provocando la distruzione di tutti gli stati di sessione.
- nella pagina di accesso a conferma che quando uso
response.write
per visualizzare i valori delle variabili di sessione. - quando do il nome utente e la password e fare clic su di login, reindirizza alla pagina di tabella.
- quando clicco logout, si reindirizza alla pagina di accesso e la pagina di login distrugge informazioni.
Problema
- dopo le informazioni di login distrutto, allora io scatto collegamento tavolo si va alla pagina tavolo, come dice NO NO e reindirizza alla pagina di login.
- MA se copio incollare l'URL della pagina da tavolo, allora non importa quello che faccio, mi permette di visualizzare la pagina. Cioè ci vuole il valore della variabile di sessione e evalutes TRUE, anche quando sono stati distrutti i valori.
Non riesco a usare le funzioni di asp.net d'accesso, i miei limiti non mi permettono di utilizzare tale controllo.
Soluzione
Si sta vedendo una versione in cache della pagina nel browser.
Se si preme CTRL + F5, dovrebbe andare via.
Altri suggerimenti
Fare link_logout un LinkButton, mettere un onclick alla pagina, e nel onclick rimuovere le variabili di sessione. Poi fare un redirect risposta del server.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow