Есть программа документооборота DocsVision. Клиент-серверная. Серверная часть реализована с использованием IIS (6.0).
На нескольких рабочих местах (Windows XP SP2) при попытке обращения к сайту:
http://<SERVER>/DocsVision/StorageServer/StorageServerService.asmx
возникает ошибка: Не удалось установить соединение с сервером, отказано в доступе.
Переустановка клиента программы, очистка временных файлов IE не помогает.
Если этим же пользователем зайти на другом компьютере - работает.
Если другим пользователем зайти на этом компьютере - работает.
Если снести профиль и создать заново - то тоже всё начинает работать.
С отключённой NTLM-аутентификацией тоже работает.
(http://<SERVER>/docsvision/?disablentlm=1)
Опция аутентификации в IE установлена следующим образом:
http://img91.imageshack.us/img91/6099/72569217uk2.jpg
Сервер http://<SERVER> внесен в "Надёжные узлы".
Видимо, что-то в профиле пользователя, но вот что и как это поправить не удаляя профиля?
Были также выполнены след. действия:
1) Рекомендации статьи:
http://support.microsoft.com/kb/322822
2)
1. Start Internet Explorer.
2. Click Tools, click Internet Options, and then click the Advanced tab.
3. Under Security, click to de-select Enable Integrated Windows Authentication (requires restart), and then click Apply.
4. Close Internet Explorer.
3)
Note that there is a registry key that will instruct IE to stop initiating NTLMSSP unless instructed by the server.
Type: DWORD
Key: HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings/DisableNTLMPreAuth
Value: 1
Релогон
4) грохали ветки:
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings
HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer
При этом, если зайти из-под проблемного профиля по ссылке:
http://<SERVER>/DocsVision/StorageServer/StorageServerService.asmx
То вылезает окно аутентификации. А вообще не должно... При этом в поле логин внесёно имя в
след формате: <SERVER>\<username>. Такого пользователя не существует...
Есть только <DOMAINNAME>\<username>.
То есть, не передаётся доменная часть
Непонятно как это исправить.
В логе IIS следующее:
2009-02-03 08:20:10 W3SVC1 192.168.0.150 POST
/DocsVision/StorageServer/StorageServerService.asmx - 80 - 192.168.0.47
DVHttpClient 401 2 2148074254
2009-02-03 08:20:10 W3SVC1 192.168.0.150 POST
/DocsVision/StorageServer/StorageServerService.asmx - 80 - 192.168.0.47
DVHttpClient 401 1 0
2009-02-03 08:20:10 W3SVC1 192.168.0.150 POST
/DocsVision/StorageServer/StorageServerService.asmx - 80 - 192.168.0.47
DVHttpClient 401 1 2148074252
Пробовали также полностью сбрасывать настройки IE (Internet Options -> Advanced -> Reset). Не помогло...
Также обновили IE c 6.0 до 7.0
Всё-таки не может быть, чтобы имя пользователя отсылалось без домена...
Если юзер под доменной учёткой вошёл в сеть, то он для получения доступа к ресурсам отправляет серверу хэш...
Не может де IE сам этот хэш выдумывать при NTLM-аутентификации. Значит
хэш правильный. Доступ же он к сетевым ресурсам нормально получает.
Т.е. глюк в чём-то другом...
При этом, похоже дело даже не в IE, так как сторонняя, использующая API системы утилита, тоже подцепиться не может, используя NTLM Auth.
http://img7.imageshack.us/img7/4787/75189531qa4.jpg
Если явно ввести логин-пароль, то всё проходит.
P.S. Похоже что глюк появился после установки сервис-паков на .NET Framework (2, 3, 3.5).... По крайней мере, глобального больше ничего не происходило.