Сайт MVC2 + аутентификация Windows = 401 не авторизован - PullRequest
0 голосов
/ 27 марта 2012

У нас есть сайт MVC2, к которому нам нужно добавить аутентификацию Windows, для единственной цели захвата имени для входа в AD - сам сайт не должен быть ограничен. Все страницы на нем открыты для всех в нашей сети.

Итак, в нашем web.config у нас есть это:

<authentication mode="Windows" />

И несколько location узлов, чтобы открыть различные области сайта для всех пользователей:

<location path="default">
  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</location>

<location path=".">
  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</location>

<location path="sales/index">
  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</location>

Однако, когда мы пытаемся нажать, например, sales/index, он запрашивает логин, и даже правильный логин выдаст 401:

Не авторизован

Ошибка HTTP 401. Запрашиваемый ресурс требует аутентификации пользователя.

Некоторые другие детали:

  • У нас нет каких-либо фильтров действий авторизации, потому что, как я сказал, весь сайт должен оставаться открытым для всех в нашей сети.

  • IIS (пул сайта и приложения) настроен одинаково, лучше всего сказать, другому сайту (MVC3), где работает аутентификация.

  • У нас также есть права доступа к папкам, настроенные одинаково между ними.

  • Единственное различие, о котором мы можем подумать на данный момент, состоит в том, что сломанный сайт - это сайт MVC2, а рабочий - сайт MVC3.

  • Неработающий сайт MVC2 будет запрашивать пользователя, тогда как работающий сайт MVC3 этого не делает - он использует сквозную аутентификацию.

  • Неработающий сайт MVC2 вернет тот же ответ для действительного пользователя, либо с действительным паролем, либо с неверным паролем.

  • Неработающий сайт MVC2 будет продолжать запрашивать имя пользователя / пароль, если введен неверный пользователь.

...