Кнопка "Назад" не должна переходить на предыдущую страницу после выхода из системы
-
21-09-2019 - |
Вопрос
Я разрабатываю asp.net веб-сайт, и я не использую встроенные элементы управления аутентификацией asp.net.Я создал вручную таблицы для пользователей для сайта.
То, что я хочу, заключается в следующем
- После входа в систему пользователь может получить доступ к страницам (это уже сделано)
- Когда пользователь нажимает выйти (пользователь переходит на определенную страницу - example - default.aspx)
- Теперь, когда пользователь нажимает кнопку "Назад" в браузере, он не должен переходить на предыдущую страницу (это делается в Yahoo pages - я хочу реализовать то же самое)
Решение
Чтобы пользователи не видели предыдущую страницу при нажатии кнопки "Назад", вам необходимо указать браузеру не кэшировать эту страницу:
Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
Response.Cache.SetValidUntilExpires(false);
Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
Вы могли бы поместить этот код на все аутентифицированные страницы, тем самым предотвратив их кэширование в клиентских браузерах.
Другие советы
Чтобы страница не кэшировалась, браузер должен соответствующим образом реагировать на инструкции по кэшированию, но нет никакой гарантии, что это сработает в каждом браузере!(Соответственно злой человек мог бы написать свой собственный браузер, чтобы игнорировать информацию о кэшировании, или написать прокси, чтобы удалить ее ...)
Таким образом, вы не можете заставить это работать в 100% случаев, но вы всегда будете сталкиваться с проблемой, заключающейся в том, что пользователь может легко сделать снимок экрана, распечатать страницу, сохранить копию на свой диск и т.д.как только вы все равно скормите им страницу...
ответ на ваш вопрос таков:
для того, когда пользователь нажимает "Выйти".( пользователь переходит на определенную страницу - пример - default.aspx ) вы можете добавить LinkButton в качестве ссылки для выхода и в обработчике события click вы можете написать Ответ.Перенаправление ("Default.aspx");
на данный момент, когда пользователь нажимает кнопку "назад" в браузере, он не должен переходить на предыдущую страницу // добавьте следующий код в свой код за страницей
защищенное переопределение аннулирует запрос (EventArgs e)
{
base.OnPreRender(e); string strDisAbleBackButton; strDisAbleBackButton = "<script language="javascript">\n"; strDisAbleBackButton += "window.history.forward(1);\n"; strDisAbleBackButton += "\n</script>"; ClientScript.RegisterClientScriptBlock(this.Page.GetType(), "clientScript", strDisAbleBackButton);
}
обратитесь к csharpdotnetfreak.blogspot.com