Проверка подлинности формы работает на сервере разработки, но не на IIS

У нас похожая проблема. У нас есть веб-приложение, работающее под именем appdomain по умолчанию. Это работало нормально до недели назад... Внезапно он столкнулся с проблемой. Ниже сообщение взято из журналов событий.

Event code: 4005 Event message: Forms authentication failed for the request. Reason: The ticket supplied has expired. 

Приложение использует FormsAuthentication и получает роли от aspnetdb. После ошибки, когда пользователь входит на страницу, он не перенаправляет на default.aspx. Снова login.aspx подходит. С другой стороны, приложение отлично работает на сервере разработки (localhost), но не на www(IIS 6.0).

У кого-нибудь есть идея?

Спасибо,

Ilknur

1 ответ

Похоже, что когда пул приложений, в котором запущено ваше приложение, находится в режиме интегрированного управляемого конвейера, который по умолчанию используется в IIS 7, вам нужно будет добавить

<system.webServer>
  <modules>
      <add  name="FormsAuthenticationModule"  type="System.Web.Security.FormsAuthenticationModule" />

Для конфигурации.

См. Раздел [Выполнение проверки подлинности на основе форм и URL-аутентификации для статических файлов с IIS 7] этой статьи.

Первоначально я вручную добавил вышеупомянутый раздел в web.config, но IIS пожаловался на ошибку во время выполнения, поэтому в итоге я использовал панель MMC для IIS (inetmgr), чтобы добавить ее через графический интерфейс. Файл конфигурации приложения не был изменен, но функция начала работать, поэтому я не уверен, к какому инструменту графического интерфейса файла конфигурации применено изменение.

Другие вопросы по тегам