Почему значение переменной сеанса остается даже после всего кода разрушения?
-
09-10-2019 - |
Вопрос
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
Когда я нажимаю ссылку выхода
- Страница входа зарабатывается, вызывая разрушение всех состояний сеансов.
- Страница входа подтверждает это, когда я использую
response.write
Для просмотра значений переменных сеанса. - Когда я даю имя пользователя и пароль, и выберите Логин, он перенаправляет на таблицу.
- Когда я нажимаю выйти из системы, он перенаправляет на страницу входа в систему и страницу входа в систему уничтожает информацию.
Проблема
- После уничтожения информации о входе в систему, затем я нажимаю ссылку на таблицу, она отправляется на страницу таблицы, как говорит отсутствие и перенаправляет на страницу входа.
- Но если я скопирую вставить URL-адрес таблицы страницы, то независимо от того, что я делаю, это позволяет мне просмотреть страницу. То есть требуется значение переменной сеанса и оценки для true, даже когда значения были уничтожены.
Я не могу использовать функции входа в систему ASP.NET, мои ограничения не позволяют мне использовать этот элемент управления.
Решение
Вы видите кэшированную версию страницы в браузере.
Если вы нажмете Ctrl + F5, он должен уйти.
Другие советы
Сделайте link_logout a linkbutton, положите onclick на страницу, а в onclick удалите переменные сеанса. Затем сделайте перенаправление ответа на сервер.
Не связан с StackOverflow