Проверка подлинности формы работает на сервере разработки, но не на IIS - PullRequest
0 голосов
/ 08 февраля 2010

У нас похожая проблема. У нас есть веб-приложение, работающее под именем 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 Ответ

0 голосов
/ 19 января 2011

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

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

К конфигурации.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...