#c# #.net #security #authentication #credentials
#c# #.net #Безопасность #проверка подлинности #учетные данные
Вопрос:
Привет, коллеги-программисты! Мне нужна ваша помощь в решении проблемы, которую я, похоже, не могу решить. У меня есть веб-служба REST, которая размещена на виртуальной машине (VM 2) с использованием IIS, и при прямом нажатии все работает нормально. Я получаю все необходимые данные, и все довольны. Обратите внимание, что для работы этой веб-службы требуются учетные данные Windows.
Теперь эта веб-служба должна использоваться более крупным веб-приложением, размещенным на другой виртуальной машине (VM 1), также использующим IIS. Здесь возникает проблема: при использовании этого веб-приложения всякий раз, когда я хочу получить доступ к странице, которая запускает веб-службу в серверной части, я получаю мгновенную ошибку 401: не удалось получить профиль пользователя (несанкционированный несанкционированный)
Схема ситуации :
Я много гуглил и пробовал много разных вещей. Я безуспешно пытался выдать себя за вызов.
Вот как создается запрос веб-приложения :
public UserProfile GetProfile()
{
var wi = (WindowsIdentity)HttpContext.Current.User.Identity;
var wic = wi.Impersonate();
try
{
var request = new RestRequest("profile")
{
Method = Method.GET,
JsonSerializer = RestJsonSerializer.Default,
UseDefaultCredentials = true,
};
var response = this.client.Execute(request);
if (response.StatusCode != HttpStatusCode.OK)
{
throw new Exception(
$"Could not get the user profile ({response.StatusCode} {response.StatusDescription})");
}
return RestJsonSerializer.Default.Deserialize<UserProfile>(response);
}
finally
{
wic.Undo();
}
}
Параметры IIS для веб-службы и веб-приложения :
- Анонимная аутентификация = отключена
- ASP.NET Олицетворение = Включено
- Проверка подлинности форм = отключена
- Проверка подлинности Windows = включена
Любая помощь или совет приветствуются 🙂
Комментарии:
1. Обе виртуальные машины используют один и тот же домен AD?
2. Да, они используют один и тот же домен
3. Поиск делегирования Kerberos и двойного перехода.