У меня есть веб-служба, работающая в IIS 6.0 в Windows 2003. В этом режиме аутентификации используется встроенная защита Windows (анонимный доступ отключен), и авторизация выполняется с помощью диспетчера авторизации и хранилища авторизации XML. Мой тестовый пользователь - это пользователь домена (фактически, администратор) с членством в авторизованной роли.
Я тестирую это (пока) на веб-сервере (localhost) и использую (пока) Internet Explorer для доступа к веб-службе (.asmx).
Я могу успешно открыть страницу веб-службы (wsdl) через localhost, например:
http://localhost:8080/MyService/MyService.asmx
При использовании этого URL встроенная проверка подлинности Windows завершается успешно (без вывода сообщений), и AzMan успешно разрешил мне доступ к службе. То же самое относится и к имени сервера:
http://myserver:8080/MyService/MyService.asmx
Теперь мне нужно использовать внешнее имя хоста (www.mysite.no) для доступа к сервису (чтобы заставить ssl работать с сертификатом, выданным этому месту). Для этого я добавляю имя хоста в мой файл HOSTS, например:
127.0.0.1 www.mysite.no
... затем введите это в IE:
http://www.mysite.no:8080/MyService/MyService.asmx
В таком случае происходит сбой авторизации. Я получаю окно входа в IE / Windows и трижды ввожу правильные учетные данные. Тогда я получаю 401.1:
HTTP Error 401.1 - Unauthorized: Access is denied due to invalid credentials.
Internet Information Services (IIS)
Как авторизация через AzMan зависит от имени хоста?
Редактировать : У меня есть основания полагать, что AzMan не имеет к этому никакого отношения - похоже, аутентификация не удалась.
Я воспроизвел проблему на другом сервере. Суть в том, что доступ к localhost через запись в файле локального хоста каким-то образом портит встроенную аутентификацию Windows между браузером и IIS.
Я обошел проблему, теперь мое любопытство - это все, что осталось ...