Я недавно перенес веб-приложение из .Net 3.5 в .Net 4 и изменил пул приложений на интегрированный режим в IIS 7.5. Это приложение состоит из двух частей: первая открыта для публики, а вторая - только для входа. Я использую аутентификацию форм для входа в систему, которая настраивается таким образом в корне web.config:
<authentication mode="Forms">
<forms loginUrl="~/private/login.aspx" protection="All" timeout="20" name=".ASPXAUTH" path="/" requireSSL="false" slidingExpiration="true" defaultUrl="~/private/default.aspx" cookieless="UseCookies" enableCrossAppRedirects="true" />
</authentication>
В корне web.config у меня есть разрешение по умолчанию для запрета неаутентифицированным пользователям, таким образом:
<authorization>
<deny users="?" />
</authorization>
НО у меня есть настройки ниже, настроенные в корневом web.config, чтобы все могли видеть страницу приветствия:
<location path="Default.aspx">
<system.web>
<authorization>
<allow users="?,*" />
</authorization>
</system.web>
Это прекрасно работало в течение многих лет, но теперь, если я не укажу явно URL Default.aspx в URL-адресе, модуль перенаправления форм будет обслуживать страницу входа. Я подтвердил, что мои страницы по умолчанию настроены правильно и включены в IIS7. Я также попытался указать их в web.config. Я проверил, что DefaultDocumentModule упорядочен перед модулем DirectoryListing.
Если я удаляю элемент, проблемы «уходят», но эффект будет по умолчанию, чтобы позволить всем пользователям, и это совершенно нежелательно.
У меня нет идей. Предложения?
Спасибо
I