Есть ли какой-нибудь способ обеспечить синхронизацию этих двух файлов?
Оба имеют значение тайм-аута в web.config, которое можно установить на одно и то же значение.Теперь, как говорится, вот где ваши проблемы могут начаться.Файл cookie для проверки подлинности форм может иметь скользящую настройку истечения срока действия, а сеанс - нет.Поэтому убедитесь, что вы отключили этот скользящий срок действия для файла cookie аутентификации, если хотите, чтобы два значения времени ожидания совпадали.И это только начало.Для сеанса вы можете выбрать, где его хранить: Off, InProc, StateServer, SqlServer.
Когда вы используете Off (лично то, что я использую), сеанс ASP.NET отключен, и у вас практически нет сеанса.
Когда вы устанавливаете его в InProc (который является значением по умолчанию)) сеанс хранится в памяти.За исключением того, что IIS может решить перезапустить домен приложения при других обстоятельствах: период бездействия, определенный порог ЦП / памяти, ... Это означает, что если сеанс хранится в памяти, а домен приложения выгружается веб-сервером, то выпотерять все, что хранится в этом сеансе, тогда как, очевидно, файл cookie аутентификации продолжает оставаться действительным.
StateServer и SQLServer - это 2 разных режима хранения сеанса вне процесса, когда информация больше не хранится в памяти сети.сервер и может пережить перезапуск AppDomain.
Таким образом, в общем, очень сложно надежно синхронизировать жизненный цикл сеанса ASP.NET и жизненный цикл cookie проверки подлинности с помощью форм ASP.NET.Я решаю эту проблему, вообще не используя сессию ASP.NET.