IE7 Classic ASP Cache - PullRequest
       20

IE7 Classic ASP Cache

4 голосов
/ 30 июля 2009

У меня есть классический веб-сайт asp, который использует переменные сеанса для хранения состояния входа, т.е. userid, isloggedin и т. д. При выходе из системы переменные сеанса сбрасываются, и вызывается Session.Abandon () с последующим перенаправлением на страницу входа. В IE7 я заметил, что после выхода из системы я могу набрать ранее посещенный URL-адрес и посмотреть, что является кэшированной версией его состояния до выхода из системы. Нажатие на ctl-f5 снова перезагрузит сервер и перенаправит на страницу входа. Это поведение, которое я хочу выполнить, даже если URL-адрес введен без ctl-f5. Кто-нибудь знает, как получить такое поведение?

Ответы [ 4 ]

4 голосов
/ 30 июля 2009

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

http://support.microsoft.com/kb/234067

2 голосов
/ 31 июля 2009

Я думаю, что ответ mkoryak (с использованием заголовков без кэширования) кажется лучшим. Если вы хотите, чтобы определенные страницы отображались только при входе пользователя в систему, лучше всего указать браузеру просто не кэшировать страницу. Кроме того, такие схемы, как настройка файлов cookie и использование javascript, определяют состояние входа в систему на клиенте, просто изобретая колесо.

Если вы хотите использовать некоторое кэширование и ваша страница не постоянно обновляется, хорошим компромиссом является установка для заголовка Response.Expires того значения, которое вы считаете подходящим (я полагаю, оно измеряется в минутах).

1 голос
/ 30 июля 2009

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

Вы можете попробовать сбросить sessionID = "" или sessionID = "XYZ" и сделать XYZ тем, что ваш код игнорирует при выходе из системы.

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

0 голосов
/ 30 июля 2009

Вы можете отправить без кэширования, однако это просто скажется на производительности, чтобы получить то, что вы хотите. Я предпочитаю предложение Liams и гарантирую, что все, что вы делаете на этой странице, требует, чтобы вы вошли в систему, чтобы никто не мог сделать то, что не должен. Что, если это система электронной почты, хотя или похожая, люди «могли бы» просматривать электронные письма других людей, которые кэшируются, тогда да, не кэширование конфиденциальной информации - путь (например, вы не можете кэшировать страницы HTTPS по умолчанию ).

Вы также можете включить в заголовок некоторый javascript, который может проверять наличие «залогиненного» cookie. Это будет запускаться каждый раз, когда они загружают страницу, если cookie не существует, JS может перенаправить вас на страницу входа. Не на 100% дурак, но достаточно хорош. Страница выхода из системы должна очистить этот файл cookie, а страница входа - установить его.

...