Я пытаюсь настроить веб-API, который при необходимости вызывает внутренний сервер с вызывающими учетными записями пользователей.
Итак, пользователь (пользователь1) вызывает API, API запускается в пуле приложений IIS с егособственная служебная учетная запись (WebApp), которую я пытаюсь получить, чтобы выдать себя за User1 для доступа к внутреннему серверу.
Я могу выдать себя за другого, но только за ImpersonationLevel of Impersonate, который дает мне доступ только к локальным ресурсам.Для олицетворения на удаленном сервере мне нужен ImpersonationLevel of Delegate.
Компиляция с использованием VS2017, веб-проект C #, веб-приложение ASP.NET (.NET Framework) с пустым шаблоном проекта с проверенным «Веб-API».Невозможно установить Аутентификацию с этими параметрами.
Код для олицетворения:
WindowsImpersonationContext myImpersonation = ((System.Security.Principal.WindowsIdentity)User.Identity)Impersonate();
Использование этого кода для отображения уровня олицетворения (также проверено с локальными ресурсами и WireShark).
WindowsIdentity.GetCurrent().ImpersonationLevel
Я думаю, что я установил делегирование Kerberos в порядке, включая имена участников-служб.
Может кто-нибудь сказать мне, должен ли приведенный выше код дать мне ImpersonationLevel of Delegate (Код в порядке)?Если нет, что я должен делать в коде?Настройки проекта в порядке?