Попытка получить уровень олицетворения делегата в C # Web API - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь настроить веб-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 (Код в порядке)?Если нет, что я должен делать в коде?Настройки проекта в порядке?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...