У меня есть классический веб-сайт asp, который использует переменные сеанса для хранения состояния входа, т.е. userid, isloggedin и т. д. При выходе из системы переменные сеанса сбрасываются и вызывается Session.Abandon(), а затем перенаправляется на страницу входа. В IE7 я заметил, что после выхода из системы я могу ввести ранее посещаемый URL-адрес и посмотреть, что похоже на кешированную версию его состояния до выхода из системы. Нажатие ctl-f5 снова перезагрузится с сервера и перенаправится на страницу входа. Это поведение, которое я хочу выполнить, даже если URL-адрес вводится без ctl-f5. Кто-нибудь знает, как получить такое поведение?IE7 Classic ASP Cache
ответ
установить заголовки без кеша, чтобы страницы не кэшировались в первую очередь. см:
Я имел подобную проблему раньше, но всякий раз, когда я нажал на ссылку на этой странице, он попросил меня снова войти в
Вы можете попробовать либо перезагрузку SESSIONID. = "" или sessionID = "XYZ" и сделать XYZ тем, что ваш код игнорирует при выходе из системы.
Вы также можете попробовать установить заголовки no-cache.
Вы можете отправить no-cache, тем не менее, это тихий удар производительности, чтобы получить то, что вы хотите. Я предпочитаю предложение Liams и гарантирую, что все, что вы делаете с этой страницы, требует, чтобы вы вошли в систему, поэтому никто не может делать ничего, что им не нужно. Что, если его система электронной почты хоть и похожа, люди «могут» просматривать электронные письма других людей, которые кэшируются, в этих случаях да, а не кэширование конфиденциальной информации - это путь (вы не можете кэшировать HTTPS-страницы по умолчанию, например).
Вы также можете включить javascript в голову, который может проверить наличие «зарегистрированного» файла cookie. Это будет запускаться каждый раз, когда они загружают страницу, если cookie не существует, тогда JS может перенаправить вас на страницу входа. Не 100% доказательство дурака, но достаточно хорошее. На странице выхода из системы вы должны очистить этот файл cookie, и страница входа в систему настроена на него.
Я думаю, что ответ mkoryak (используя заголовки без кеша) кажется лучшим. Если вы хотите, чтобы определенные страницы отображались только при входе пользователя в систему, лучшим способом является указание браузеру просто не кэшировать страницу. Кроме того, такие схемы, как настройка cookie и использование javascript, определяют состояние входа на клиенте, просто изобретают колесо.
Если вы хотите использовать какое-то кеширование, а ваша страница не является постоянным обновлением, хорошим компромиссом является то, что заголовок Response.Expires
подходит к некоторому значению, которое вы считаете подходящим (это измеряется в считанные минуты).
- 1. CLASSIC ASP PAGINATION
- 2. Classic ASP Bottlenecks
- 3. Asp classic и ajax
- 4. Classic ASP LocaleID
- 5. classic asp - cdonts
- 6. classic asp obfuscate
- 7. Classic ASP Twitter Libraries
- 8. Уязвимость Classic ASP Cookie
- 9. classic asp cint
- 10. Classic ASP FormatNumber weirdness
- 11. debug classic asp page
- 12. Asp Classic Include Once
- 13. Forum software ASP classic
- 14. Календарь в ASP Classic
- 15. Classic Asp Date
- 16. CLASSIC ASP: ВСТАВКА ЗАПИСИ
- 17. .net и classic asp
- 18. Classic ASP + Ajax
- 19. Request.Querystring i Classic ASP
- 20. Uploadfy with Classic ASP
- 21. Classic ASP Screen Scraping
- 22. CLASSIC ASP QUERY
- 23. Безопасность Classic ASP
- 24. Ingres with Classic ASP
- 25. Eclipse - ASP classic plugin
- 26. Asp Classic Неверное кодирование
- 27. Переполнение в ASP Classic
- 28. swfupload + classic asp
- 29. split() in Classic asp
- 30. Classic ASP TouchActionButton