Назад | Перейти на главную страницу

Ошибка проверки подлинности Windows IIS 6 в приложении ASP.Net

Я пытаюсь установить приложение ASP.Net на веб-сервер IIS6. Сайт требует, чтобы пользователь прошел аутентификацию в Windows, и это работает в нескольких других приложениях на том же сервере.

В IIS я включил анонимный доступ и проверку подлинности Windows.

В web.config аутентификация установлена ​​на:

<authentication mode="Windows"/>

и авторизация ...:

<authorization>
  <allow roles="Users"/>
  <deny users="*"/>
</authorization>

Т.е. разрешить всем пользователям в роли «Пользователи» и запретить всем остальным. Это подход, который работает с несколькими другими приложениями на одном сервере.

Если я запустил сайт, мне будет предложено ввести имя пользователя и пароль.

Если я удалю строку:

  <deny users="*"/>

Я могу получить доступ к сайту, и все работает, но учетные данные пользователя не передаются на сайт (Page.User.Identity.Name возвращает пустую строку в ASP.Net).

Этот сайт имеет такие же (унаследованные) права доступа к файлам, что и другие рабочие сайты на сервере.

Единственная разница в аутентификации / авторизации между этим сайтом и другими рабочими сайтами заключается в том, что на нем работает Asp.Net 4 (но на сервере есть и другие рабочие сайты asp.net 4).

Что мне здесь не хватает?

Где мне искать?

Если сайт требует, чтобы пользователь аутентифицировался, вам следует удалить анонимный доступ и разрешить только интегрированные окна. Page.User.Identity.Name возвращает пустое значение, поскольку анонимная проверка подлинности используется поверх интегрированных окон.

Если это домен, то разрешающие роли должны быть в форме домен \ группа безопасности. "?" в запрете пользователям обычно достаточно заблокировать анонимный доступ.

<identity impersonate="true" /> может быть полезно, если вашему коду требуется доступ к ресурсу, который должен пройти аутентификацию как пользователь, использующий ваше приложение.

Или попробуйте следующее.<deny users="*,?"/>

Попробуй использовать "?" вместо «*» в правиле «запретить пользователям».