Я пытаюсь вызвать веб-службу Sharepoint через WCF изнутри .ASHX на другом сервере. Мой код работает, если я запускаю внутри веб-сервера отладки Visual Studio, но не из IIS. Рабочий сервер работает в различных режимах аутентификации (Kerberos, NTLM), а нерабочий не работает ни в одном. Я выдаю себя за одного и того же пользователя в обоих случаях.
Используя NTLM, я записал рабочую сессию и нерабочую сессию в Wireshark. В рабочем Wireshark анализирует данные NTLM и сообщает ДОМЕН и ИМЯ ПОЛЬЗОВАТЕЛЯ, которые я ожидаю. В нерабочем показывает
DOMAIN: NULL
USER NAME: NULL
Я провел отладку в IIS, и олицетворение определенно работает в момент вызова службы. Если я отмечу WindowsIdentity.GetCurrent()
, это пользователь, которого я ожидаю.
Если я проверю прокси службы WCF на рабочем и нерабочем серверах, они выглядят одинаково — часть, которая имеет дело с ClientCredentials, имеет значение ""
для имени пользователя и пароля для обеих версий.
Есть идеи, что еще проверить? Почему в данных NTLM для ДОМЕНА и ИМЯ ПОЛЬЗОВАТЕЛЯ установлено значение NULL - откуда он это берет?