Вход в систему аутентификации ASP.NET и выход из системы с кнопкой "Назад" браузера

Вот короткая история, которую вы могли бы использовать в качестве указателя:

Я закодировал TailingInputStream на работе по той же причине. Он в основном использует файл и обновляет его содержимое по требованию и проверяет его на внутренний буфер, если он значительно изменился (4KB-память штампа IIRC), а затем сделал то, что делает tail -f. Немного взломанный, да, но он отлично работает и не вмешивается в Threads или что-то вроде этого - он совместим до 1.4.2 по крайней мере.

Тем не менее, это было много проще, чем ReverseInputStream, который шел от конца файла до начала и не умирал, если файл обновлялся на лету ...

29
задан Jens Roland 21 April 2010 в 22:26
поделиться

4 ответа

Беспокойство по поводу истории браузера и кнопки «Назад» вызовет головную боль и генитальные бородавки. Есть встроенные средства для решения этой проблемы.

Ваша ссылка / кнопка выхода из системы должна указывать на страницу, содержащую этот код, а также все, что вы хотите.

[vb.net]

Imports System.Web.Security

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _
 Handles MyBase.Load
    Session.Abandon()
    FormsAuthentication.SignOut()
End Sub

[c #]

using System.Web.Security;

private void Page_Load(object sender, System.EventArgs e)
{
    // Put user code to initialize the page here
    Session.Abandon();
    FormsAuthentication.SignOut();
}

Код взят с этой страницы и действителен, но страница трудна для глаза.

Хороший Вопрос / Ответ относительно поведения кнопки можно найти здесь здесь .

Обновление:

в соответствии с беседой, которую я веду с Мэтью, отключение кэширования на отдельных страницах, которые являются чувствительными или изменчивыми, можно сделать с помощью следующего кода:

Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();

Мне любопытно узнать, работает ли он для вас так же, как и для меня.

23
ответ дан Community 28 November 2019 в 02:05
поделиться

Этот код очень полезен.

Response.Cache.SetCacheability(HttpCacheability.NoCache);

Этот код помещается только в событие загрузки, на главный экран в случае, но он работает только для IE, для IE и Firefox я использовал

Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
1
ответ дан Andrew Barber 28 November 2019 в 02:05
поделиться

На самом деле я нашел решение, я добавил следующий фрагмент к методу загрузки страницы главной страницы.

Page.Response.Cache.SetCacheability(HttpCacheability.NoCache);

спасибо за ответ в любом случае:)

-3
ответ дан Eatdoku 28 November 2019 в 02:05
поделиться

Вы можете использовать javascript, чтобы отключить кнопку "Назад" (обычно отправляя пользователя на страницу, которая перенаправляет на другую страницу, так что нажатие "назад" снова отправляет вас вперед ). Постоянный пользователь может вернуться на 2 шага назад по истории и пройти цикл.

Эта страница находится в кеше браузера. Вы можете попросить браузер ничего не кешировать, но это может сильно снизить производительность, поэтому я бы не рекомендовал это делать.

3
ответ дан 28 November 2019 в 02:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: