Internet Explorer с кэшированной страницей (для просмотра которой требуется файл cookie) - PullRequest
0 голосов
/ 15 апреля 2011

У меня есть папка на моем веб-сервере с некоторыми aspx-страницами, доступ к которым возможен только при наличии определенного файла cookie.

При событии page_load я проверяю, существует ли этот файл cookie, если он не перенаправлен на Default.ASPX.Это прекрасно работает с такими браузерами, как Google Chorme и FireFox (3, я еще не тестировал 2).Но ... по какой-то причине IE будет отправлять какие-то cookie-файлы, так как мой веб-сайт считает, что есть некоторые типы cookie-файлов ..

Поэтому я добавил кнопку на свою страницу, чтобы удалить cookie-файл.но cookie не существует в соответствии с моим кодом (это правильно).Тогда я предположил, что IE кэширует страницу.Поэтому после очистки кэша мой код страницы работает правильно, и вы перенаправляетесь на Default.aspx.

Есть ли какой-то способ запретить доступ к папке, если этот файл cookie не существует, так что IE не 't показывает страницу, которая не работает?

Это сложно объяснить.

Мой код проверки файлов cookie:

protected void Page_Load(object sender, EventArgs e)
{
   {
      SimpleAES decrypt = new SimpleAES();
      //Check for Authentication Cookie
      HttpCookie auth_Cookie = new HttpCookie("WEB_AUTH");
      auth_Cookie = Request.Cookies["WEB_AUTH"];
      if (auth_Cookie != null)
      {
         //Some code to execute if Cookie exists and holds correct values
      }

      else
      { 
         //If there isn't a cookie, redirect to login.aspx
         Response.Redirect("~/Default.aspx"); 
      }
   }
}

Любая предоставленная помощь будетдобро пожаловать!Спасибо

ДОБАВЛЕНО Я просто хочу, чтобы эти страницы в папке 'XXX' не отображались, если этот файл cookie недоступен.но IE загружает страницу из своего локального кэша, а не проверяет, действительно ли он может это загрузить.Что делать?

РЕДАКТИРОВАТЬ

Страницы в папке 'XXX' имеют 1 главную страницу, на которой находится проверочный код Cookie.

1 Ответ

1 голос
/ 15 апреля 2011

Вам нужно запретить браузеру кэшировать страницу.Вы должны установить Response.Cache в соответствии с вашими требованиями (http://msdn.microsoft.com/en-us/library/system.web.httpresponse.cache(v=VS.100).aspx).

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

...