IIS с аутентификацией Windows и идентификатором сеанса в URL ненадежен
Мы используем проверку подлинности Windows для приложения ASP.NET, которое также использует сеансы без файлов cookie, поэтому идентификатор сеанса кодируется в URL. Если пользователи войдут через корневой URL, нет проблем. Но они также сохраняют приложение в своих закладках, используя URL-адрес, который включает идентификатор сеанса, и после истечения этого сеанса сайт возвращает ошибку 401, которая никогда не может быть удовлетворена.
Чтобы избежать этого, мы добавили редирект 401 к базовому URL, и это работает некоторое время. Но в конечном итоге, возможно, после перезапуска (мы не контролируем перезапуски на этом сервере), аутентификация Windows перестает работать полностью. Пользователям показывается всплывающее окно входа в систему, и это никогда не удается. Мы должны удалить перенаправление 401, войти в базовый URL, а затем восстановить перенаправление. Теперь приложение снова работает правильно.
У меня создается впечатление, что мы делаем что-то не так, но я не уверен, что. Перенаправление 401, в частности, выглядит как хак, но я не могу придумать другой способ, позволяющий старым сеансам перенаправлять обратно в приложение, чтобы получить новый сеанс.