Проверка подлинности на основе форм ASP.Net 4 в IIS 7.5 - документ по умолчанию больше не работает - PullRequest
1 голос
/ 24 февраля 2012

Я недавно перенес веб-приложение из .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

Ответы [ 2 ]

0 голосов
/ 02 марта 2012

ОК, я попросил инженера службы поддержки Microsoft Premier разобраться со мной.Мы сели вместе на моей рабочей станции и рассмотрели (а) среду и конфигурацию приложения и (б) возможные решения.

Он ссылался на эту MS статью «Быстрая публикация» , в которой говорится, что яудалить обработчики ExtensionLessURL из IIS через MMC.Что ж, мы огромная организация с серверами вне wazoo, и я не мог гарантировать, что это изменение будет всегда приветствоваться, поэтому я не хотел этого делать.Мы попытались использовать web.config для их удаления, но это не сработало.

Итак, я показал ему это решение из другого потока StackOverflow (опубликовано Dmitry.Alk) и он сказал, что это былохороший обходной путь на данный момент.Он отлично работает для этой конкретной ситуации .

В статье о быстрой публикации упоминается это исправление Доступно обновление, позволяющее определенным обработчикам IIS 7.0 или IIS 7.5 обрабатывать запросы, URL-адреса которых не обрабатываются.закончите периодом , который я должен продать нашему ИТ-отделу.

Я не называю то, что я здесь написал, «ответом», но я хотел поделиться тем, что я »Приходите учиться на случай, если другие натолкнутся на эту тему.

0 голосов
/ 24 февраля 2012

Похоже, что-то вроде документа по умолчанию.Если вы посмотрите в IIS Manager на сайте, что находится в списке «Документ по умолчанию».Возможно ли, что что-то кроме Default.aspx находится выше в списке?Если что-то соответствующее этому найдено в вашей корневой сети, оно сначала попытается зайти туда и, таким образом, будет перенаправлено на страницу входа.

Вы явно устанавливаете документ по умолчанию в своем файле web.config?как в:

<defaultDocument enabled="true">
        <files>
            <clear />
            <add value="Default.aspx" />
            <add value="Default.htm" />
            <add value="index.htm" />
            <add value="index.html" />
            <add value="iisstart.htm" />
        </files>
    </defaultDocument>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...