Вот короткая история, которую вы могли бы использовать в качестве указателя:
Я закодировал TailingInputStream на работе по той же причине. Он в основном использует файл и обновляет его содержимое по требованию и проверяет его на внутренний буфер, если он значительно изменился (4KB-память штампа IIRC), а затем сделал то, что делает tail -f. Немного взломанный, да, но он отлично работает и не вмешивается в Threads или что-то вроде этого - он совместим до 1.4.2 по крайней мере.
Тем не менее, это было много проще, чем ReverseInputStream, который шел от конца файла до начала и не умирал, если файл обновлялся на лету ...
Беспокойство по поводу истории браузера и кнопки «Назад» вызовет головную боль и генитальные бородавки. Есть встроенные средства для решения этой проблемы.
Ваша ссылка / кнопка выхода из системы должна указывать на страницу, содержащую этот код, а также все, что вы хотите.
[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();
Мне любопытно узнать, работает ли он для вас так же, как и для меня.
Этот код очень полезен.
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Этот код помещается только в событие загрузки, на главный экран в случае, но он работает только для IE, для IE и Firefox я использовал
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
На самом деле я нашел решение, я добавил следующий фрагмент к методу загрузки страницы главной страницы.
Page.Response.Cache.SetCacheability(HttpCacheability.NoCache);
спасибо за ответ в любом случае:)
Вы можете использовать javascript, чтобы отключить кнопку "Назад" (обычно отправляя пользователя на страницу, которая перенаправляет на другую страницу, так что нажатие "назад" снова отправляет вас вперед ). Постоянный пользователь может вернуться на 2 шага назад по истории и пройти цикл.
Эта страница находится в кеше браузера. Вы можете попросить браузер ничего не кешировать, но это может сильно снизить производительность, поэтому я бы не рекомендовал это делать.