На моей машине (win server 2003) у меня есть веб-приложение ASP.Net, которое вызывает веб-службу ASP.Net на другом сервере (также на сервере win 2003). Веб-приложение настроено на олицетворение и использование проверки подлинности Windows. Веб-служба настроена на требование проверки подлинности Windows. Файл asmx ограничен определенной группой Active Directory через конфигурацию в web.config.
Веб-приложение вызывает веб-службу и передает ей учетные данные по умолчанию. Все это работает, когда на моем компьютере есть и веб-приложение, и веб-служба, но когда я перемещаю веб-службу на отдельный сервер, я получаю 401, а журнал IIS не показывает пользователя, что означает, что учетные данные не передаются через должным образом.
Есть ли что-то еще, что мне нужно настроить, чтобы разрешить передачу учетных данных из моего веб-приложения на другой сервер?
Для приложения ASP.NET, если вы установите impersonation = "true", оно будет запускаться под аутентифицированным пользователем для «большинства» вещей. Итак, если у вас есть запрос имени пользователя / пароля в веб-приложении, эти учетные данные будут переданы веб-службе, если олицетворение включено.
Однако вы столкнетесь с так называемой «проблемой двойного прыжка». Windows auth специально не позволяет учетным данным проходить через 2 таких перехода. Вот сообщение в блоге, в котором описаны возможные решения: http://weblogs.asp.net/owscott/archive/2008/08/22/iis-windows-authentication-and-the-double-hop-issue.aspx