У нас есть интранет-сайт, например xxx.yyyy.com, к которому пользователи получают доступ, вводя http: //xxx.yyy.com.
Наши проблемы начались, когда мы перешли на IIS 7, работающий на новом сервере 2003 года. Мы избавились от кода единого входа и реализовали модель безопасности, в которой мы фиксируем учетные данные домена пользователя, которые затем проверяем в базе данных.
Чтобы получить учетные данные домена, переданные нашему приложению ASP.NET, у нас есть следующие настройки:
Анонимная проверка подлинности: отключена. Олицетворение ASP.NET: включена. Базовая / дайджест-проверка подлинности / формы: отключена. Проверка подлинности Windows: включена.
Мы разрешаем "*" и запрещаем "?" в файле web.config.
При просмотре http: //xxx.yyy.com с любого клиентского ПК появляется запрос на вход в домен, и если вы вводите правильный user / pwd, вы можете войти.
Однако просмотр http: //xxx.yyy.com при удаленном подключении к серверу приводит к появлению трех запросов на вход в домен и, в конечном итоге, к ошибке 401 - неавторизованному.
Мы проследили это поведение до проблем с нашим веб-сайтом, где у нас есть страницы, выполняющие «очистку экрана» с использованием HttpRequest, вызывающего URL-адрес на том же сервере.
При выполнении HttpRequest от любого другого клиента с использованием тестовой программы, которая передает авторизованные учетные данные, все в порядке. Таким образом, внутренние вызовы HttpRequest на сервере терпят неудачу, как и попытки просмотреть URL-адрес этого сервера из удаленного сеанса.
Почему переход на "http": //xxx.yyy.com на сервере xxx.yyy.com не прошел аутентификацию?
См. Эту статью службы поддержки Microsoft:
Симптомы:
Вы обновляете компьютер под управлением Microsoft Windows Server 2003, на котором работает Microsoft Internet Information Services (IIS) 6.0 или Microsoft SQL Server 2000, до Windows Server 2003 с пакетом обновления 1 (SP1).
После этого пользователи сталкиваются с проблемами аутентификации при использовании веб-приложений или при использовании программы, которая запрашивает базу данных. Например, пользователь может испытывать симптомы, похожие на одно из следующих:
Пользователь получает сообщение об ошибке «Доступ запрещен», когда пользователь пытается получить доступ к веб-странице, которая извлекает данные из внутренней базы данных.
Пользователь не может подключиться к другому серверу базы данных, который находится в кластере балансировки сетевой нагрузки (NLB). Запросы к серверу базы данных завершаются ошибкой. Симптомы, с которыми сталкиваются пользователи, могут различаться в зависимости от конкретной среды.