Аутентификация форм ASP.NET не выполнена для запроса. Причина: истеченный билет
Я получаю эту ошибку много раз в журнале событий, и пользователи выходят из системы.
Код события: 4005
Сообщение о событии: Ошибка проверки подлинности форм для запроса. Причина: Срок действия билета истек.
Время события: 3/10/2011 3:35:22 PM
Время события (UTC): 3/10/2011 20:35:22
КОД события: fc2f70cc85014b0ca7dbb01471617b66
Последовательность событий: 3392
Событие: 1
Код события: 50202
Мысли:
- Я не использую веб-формы.
- Я не думаю, что пул приложений перерабатывается.
- Я сравнивал идентификатор процесса в нескольких событиях и равный.
- Мой машинный ключ не является автогенератором.
Ответы
Ответ 1
Звучит как ошибка, которую вы получите, когда истечет срок действия билета проверки подлинности вашей формы. Каков период ожидания вашего билета? Установлено ли это скользящее или абсолютное истечение?
Я считаю, что по умолчанию для тайм-аута 20 минут с истечением срока действия, поэтому, если пользователь получает аутентификацию и в какой-то момент не ударяет по вашему сайту в течение 20 минут, их билет истек. Если он установлен на абсолютное истечение, он истечет через X минут после его выпуска, где X - это время ожидания.
Вы можете установить политику ожидания и истечения срока действия (например, скользящую, абсолютную) в web/machine.config
под /configuration/system.web/authentication/forms
Ответ 2
AS Scott упоминается здесь http://weblogs.asp.net/scottgu/archive/2010/09/30/asp-net-security-fix-now-on-windows-update.aspx
После того как окна установили обновление безопасности для .NET Framework, вы столкнетесь с этой проблемой.
просто измените раздел конфигурации в файле web.config и переключитесь на другое имя файла cookie.
Ответ 3
Вот хорошая статья Microsoft http://www.iis.net/learn/troubleshoot/security-issues/troubleshooting-forms-authentication, которая охватывает различные случаи и сценарии.
Ответ 4
У меня была такая же проблема после использования web.config с другого компьютера. Проблема связана с недопустимым MachineKey
. Чтобы решить эту проблему, я изменил web.config, чтобы использовать правильный MachineKey
моего сервера.
Этот сообщение в блоге MSDN показывает, как создать MachineKey.