Ответ 1
Для этого вам нужно заставить истечение срока действия кеша работать. Я ищу образец кода для вас.
ИЗМЕНИТЬ
Нашел это для вас, его уже рассмотрели здесь на SO.
Page.Response.Cache.SetCacheability(HttpCacheability.NoCache)
Наша проблема в том, что мы можем очистить сеанс при выходе из системы.
Но если пользователь нажимает кнопку "Назад", он может просматривать все предыдущие экраны.
Но преимущество заключается в том, что одним щелчком мыши на любой из ранее загруженных страниц приходят пользователи на страницу входа назад, мы это сделали. Но наше требование состоит в том, что мы не должны позволять пользователю проходить предыдущую страницу серфинга.
Для этого вам нужно заставить истечение срока действия кеша работать. Я ищу образец кода для вас.
ИЗМЕНИТЬ
Нашел это для вас, его уже рассмотрели здесь на SO.
Page.Response.Cache.SetCacheability(HttpCacheability.NoCache)
напишите этот код на главной странице в событии загрузки страницы
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
Response.Cache.SetNoStore();
и напишите этот код на странице входа в раздел главы
<script type="text/javascript">
window.history.forward(-1);
</script>
Вы не можете "отключить" кнопку "Назад". Есть множество "трюков", которые я видел, которые могут очистить заднюю историю, но они ненадежны и не работают от браузера до браузера или даже версии браузера до версии браузера.
Как говорили другие, правильный метод делает недействительным кеш, наряду с проверкой на стороне сервера, что сеанс больше недействителен, если он пытается повторно отправить данные. Кроме того, Response.Redirect работает лучше, чем обратная передача, поскольку это вызывает получение, а не сообщение.
Для страниц ASP.NET вы можете использовать Response.CacheControl, чтобы контролировать, как страница хранится в кеше пользователей. Другие языки веб-разработки будут использовать что-то подобное.
Вы можете использовать стиль Outlook Web Access и просто закрыть JavaScript в текущем окне/вкладке.
Кроме того, вы можете убедиться, что ваша страница "выхода" - это обратная передача. Это заставит пользователя на кнопке "Назад" в большинстве браузеров повторить обратную передачу, после чего вы сможете обнаружить, что они больше не вошли в систему и могут перенаправить их обратно на страницу входа.
Изменить: Кто-то еще упомянул Response.Redirect. Фактически вы можете перевести ссылку "Выход" на страницу с перенаправлением и ВСЕГДА перенаправить на вторую "целевую страницу". Если пользователь нажмет "Назад", они снова приземлится на перенаправление и вернут их туда, где они начали.
Невозможно предотвратить историю браузера, поэтому важно использовать вместе несколько методов и не планировать пользователя "не возвращаться", чтобы обеспечить безопасность вашего приложения.
Более ранняя вариация того же вопроса/ответа:
Это решение, которое я нашел в Кодирующие решения
на главной странице
protected void Page_Load(object sender, EventArgs e)
{
Response.ClearHeaders();
Response.AppendHeader("Cache-Control", "no-cache"); //HTTP 1.1
Response.AppendHeader("Cache-Control", "private"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "no-store"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "must-revalidate"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "max-stale=0"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "post-check=0"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "pre-check=0"); // HTTP 1.1
Response.AppendHeader("Pragma", "no-cache"); // HTTP 1.1
Response.AppendHeader("Keep-Alive", "timeout=3, max=993"); // HTTP 1.1
Response.AppendHeader("Expires", "Mon, 26 Jul 1997 05:00:00 GMT"); // HTTP 1.1
}
Элемент управления LoginStatus
protected void LoginStatusUser_LoggedOut(object sender, EventArgs e)
{
Session.Abandon();
FormsAuthentication.SignOut();
}