Кнопка "Назад" не должна переходить на предыдущую страницу после выхода из системы

StackOverflow https://stackoverflow.com/questions/1963882

Вопрос

Я разрабатываю 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top