Файл cookie удален в условном запросе GET

#asp.net #azure #cookies #fiddler #sitefinity

#asp.net #azure #файлы cookie #скрипач #sitefinity

Вопрос:

Недавно наш веб-сайт, размещенный в Azure, столкнулся со странной проблемой. После входа в систему пользователь немедленно проходит проверку подлинности, и когда они нажимают на любую ссылку, чтобы перейти на другую страницу, они будут перенаправлены на страницу входа из-за не прошедшего проверку подлинности. Это происходит не постоянно, но последствия серьезны, потому что мы даже не знаем, когда это произойдет, в журнале нет исключений, просто внезапно пропала аутентификация Вчера я столкнулся с этой проблемой на производстве и записал последовательность запросов в то время, когда меня выгнали с помощью Fiddler, и обнаружил кое-что необычное:

Скрипач захвачен

Страница, на которую я попал после входа в / my-quizzes (окрашена в зеленый цвет). Когда я нажимаю на ссылку, чтобы перейти на другую страницу (ссылка «/ group», выделена зеленым цветом), я перенаправляюсь на страницу входа. Между моими запросами в / my-quizzes и / group есть несколько других запросов на javascript, изображения и т.д. Странная вещь заключается в том, что в выделенном запросе на «uncheckCheckBox.png» в ответе удаляется файл cookie аутентификации (.SFAUTH-XXX) и некоторые другие файлы cookie (устанавливается в пустую строку с датой истечения срока действия = 12/10/1999). Это причина, по которой последующий запрос на страницу / group не прошел проверку подлинности

Наш веб-сайт построен поверх Sitefinity, используя ASP.NET MVC

Мои вопросы:

  • Нормально ли удалять файлы cookie в запросе изображения, подобном этому? И это всего лишь условный GET для проверки, изменено ли изображение, что для меня довольно необычно. Но я не могу объяснить, почему это происходит
  • Есть предложения о том, как мы можем устранить проблему с удалением файлов cookie?

Ответ №1:

На скольких экземплярах Azure запущен ваш сайт? Если их несколько — настроен ли у вас модуль балансировки нагрузки Sitefinity?

Возможно, что при нажатии на ссылку / Страница группы запрос отправляется в другой экземпляр Azure, где вы не прошли проверку подлинности (например, из-за неправильно настроенного LB).

Регулярно ли перерабатывается пул ваших приложений? Это может быть и другой причиной.

Комментарии:

1. Привет, большое спасибо за ваш ответ. Мы используем Sitefinity в Azure, и, судя по документации Sitefinity, нам не нужно настраивать балансировку нагрузки Sitefinity, потому что Sitefinity будет использовать Azure API для балансировки нагрузки ( sitefinity.com/documentation/documentationarticles /… ). Мы отключаем большинство настроек в пуле приложений, которые могут повлиять на повторный набор, например, ограничение количества запросов, памяти и т.д. Но у нас есть настройка для регулярной переработки (1740 минут, то есть каждые 29 часов). Но хранилище сеансов использует Azure cache, поэтому такая переработка не должна быть проблемой, верно?

2. Да, Sitefinity автоматически выполняет балансировку нагрузки, если вы используете облачные сервисы Azure. Если вы находитесь на виртуальных машинах Azure или веб-сайтах, то это происходит не автоматически. Я не думаю, что регулярная переработка пула приложений в производственной среде — хорошая идея. Для меня это не имеет смысла.