Servicestack теряет сеанс, пока кэш не очистится, после нажатия файлов bin / js

#c# #session #servicestack

#c# #сеанс #servicestack

Вопрос:

Приложение ServiceStack использует Angular (но проблема возникает и с /auth * см. Ниже)

Браузеры, в которых я определенно сталкиваюсь с проблемой: Chrome, Safari

Возникает проблема, при которой пользователь теряет сеанс сразу после перенаправления входа. Я также тестировал использование /auth?имя пользователя и пароль, я отлично получаю идентификатор сеанса, но возврат к /auth показывает меня как несанкционированный.

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

Я попытался добавить управление версиями в файлы CSS и JS на всякий случай, если это было проблемой при нажатии, но это не решает проблему.

Шаги для воспроизведения

  • Нажимные библиотеки dll, файлы js
  • перейдите на промежуточный веб-сайт
  • попытка входа в систему…успех
  • перенаправление и сеанс пропали

Есть идеи о том, где искать / решить эту проблему, не заставляя пользователей приложений очищать кеш? Любые идеи / направления были бы очень полезны.

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

1. Остается ли пользователь в том же домене при перенаправлении? Используете ли вы файлы cookie сеанса или сервер состояния сеанса? Проверил значения / настройки / cookie сеанса / сервера?

2. Спасибо за предложение, это заставило меня взглянуть на домены cookie, которые приводят к решению

Ответ №1:

Если вы используете MemoryCacheClient , то добавление файлов в папку вашего веб-приложения приведет к перезапуску ASP.NET Домен приложения, который перезапускает ваше веб-приложение, очищая всю существующую память.

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

Ответ №2:

Хорошо, разобрался с проблемой! Это было весело.

Настройка: у нас есть два сайта servicestack

  • example.com //при постановке это был SSL
  • sub.example.com //при постановке это был не SSL

Вот как проблема воспроизводится при тестировании, которое мы бы сделали….

  • войдите в example.com в какой — то момент предшествующий , который привел бы к .example.com домен cookie-файлов
  • Мы бы отправили изменения файлов в sub.example.com который уничтожил бы файлы cookie для этого поддомена
  • Мы попытаемся войти в sub.example.com и потерпеть неудачу
  • Если я удален.example.com файлы cookie из example.com , вход в систему sub.example.com было бы прекрасно

Чтобы исправить, мы сделали sub.example.com А также SSL, который устранил проблему. В долгосрочной перспективе мы сделаем все подстановочные знаки для файлов cookie и добавим поставщика, не являющегося memcache, согласно предложению Mythz.