Каков наилучший обходной путь для тайм-аута проверки подлинности форм ASP.NET при использовании сопоставления с подстановочными знаками?

StackOverflow https://stackoverflow.com/questions/57739

Вопрос

Моя команда работает над дрянным старым веб-сайтом, и большинство страниц все еще являются классическими ASP.Однако недавно мы перешли на проверку подлинности с помощью форм с использованием ASP.NET и сопоставления с подстановочными знаками.Все работает на удивление хорошо, кроме одного:у вошедших в систему пользователей тайм-аут истекает слишком быстро.После просмотра журналов выяснилось, что время ожидания у людей истекает ровно через 20 минут (это указанное время ожидания из-за неактивности).

Итак, наша гипотеза состоит в том, что классические страницы ASP не отключают какой-либо механизм в структуре аутентификации с помощью форм, который сбрасывает таймер неактивности.Я погуглил и даже прочитал сообщение Великого Гу о сопоставлении с подстановочными знаками, но до сих пор не могу найти никого, у кого была бы такая проблема.Итак, 1) Вы когда-нибудь сталкивались с этой проблемой?и 2) Какой лучший обходной путь?(кроме ручного размещения скрытого фрейма на каждой неуклюжей странице ASP, которая в фоновом режиме загружает тупую страницу .NET)

Обновлять: скользящий срок действия установлено на истинный

Также:Мы не можем использовать постоянные сеансы, поскольку нам нужно, чтобы приложение отключалось после 20 минут бездействия.Кроме того, этот ужасный сайт был написан так, что интерфейс обычно хранится на странице.Не существует простого фрагмента кода интерфейса, в который я мог бы вставить JavaScript.Мы попытались поместить немного js во включаемый файл, который вызывался примерно на 80% наших страниц, но это вызвало некоторые эзотерические проблемы с буферами загрузки файлов, поэтому нам, возможно, придется попробовать другой подход.Спасибо.

Это было полезно?

Решение

Создайте вечную сессию.

По сути, вы в конечном итоге генерируете некоторый JavaScript и тег изображения на своей главной странице или в элементах управления пользователя навигации (что бы вы ни использовали для согласованной навигации).Этот JavaScript через некоторый интервал меняет источник тега изображения на конечную точку обработчика http (некоторые .aspx, .ashx), который возвращает чистый gif размером 1x1 пиксель в качестве ответа на изображение.Постоянный запрос гарантирует, что простаивающие страницы будут поддерживать сеанс.

Пока окно браузера открыто для вашей страницы, ваш сеанс ASP.NET никогда не истечет.

Часто JavaScript добавляет к запросу случайное число, чтобы браузер не кэшировал запрос.

Доступно достойное прохождение здесь.

Другие советы

Я предполагаю, что вы вручную создали файл cookie, и в этом случае значение тайм-аута в коде, вероятно, переопределяет значение тайм-аута в конфигурации.

Во-первых, если возможно (что, вероятно, не так), не создавайте файлы cookie вручную, это избавит вас не только от этой головной боли, но и от десятков других.

Если вам необходимо создать файл cookie вручную, убедитесь, что используемый вами тайм-аут фактически считывает значение тайм-аута, которое вы установили в файле конфигурации, и что для скользящего срока действия установлено значение true (как вы сказали).

Тем не менее, у нас по-прежнему возникают странные проблемы с тайм-аутом, когда файлы cookie создаются вручную.Там, где я работаю, мы внедрили решение, которое позволило автоматически создавать файлы cookie, и тайм-ауты больше не были проблемой;однако это создало другие проблемы, и мы были вынуждены вернуться назад.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top