Проверка подлинности с помощью форм и фильтр авторизации ASP.NET MVC не зависят от состояния сеанса ASP.NET.Таким образом, если метод контроллера завершается сбоем из-за отсутствия данных сеанса, то это связано с вашим кодом, который предполагает такие отношения.См. эту статью , чтобы понять, как Authorize работает с аутентификацией ASP.NET.
Я полагаю, что ваша проблема возникает из-за того, что вы принимаете аутентификацию форм, синонимичную состоянию сеанса.Но вы можете иметь состояние сеанса без аутентификации.Оба используют разные механизмы и имеют разные тайм-ауты.Поэтому, если вы помещаете некоторые данные в состояние сеанса на странице входа в систему, возможно, ваш сеанс истек, но аутентификация остается действительной (и, следовательно, вы не будете перенаправлены на страницу входа).Простым решением может быть синхронизация сеанса и времени ожидания аутентификации, но это не сработает при перезапуске приложения.Наилучшим способом было бы проверить соответствующие данные сеанса и, если они не существуют, либо принудительно выполнить повторный вход в систему, либо использовать информацию о пользователе / личности аутентифицированного пользователя для восстановления данных в сеансе.Я бы предпочел более поздний подход.