Мне следует предвосхитить это тем фактом, что я никогда не делал этого, поэтому я не могу дать вам точный код, но могу указать вам верное направление.
Вы должны быть в состоянии сделатьэто с ADFS и интегрированной авторизацией Windows (WIA).В «чистом веб-приложении» браузер отправляет учетные данные вошедшего в систему пользователя на этапе авторизации.В вашем случае ваше настольное приложение должно делать все, что обычно делает браузер.В любом случае настройка на стороне веб-службы должна быть точно такой же.
В C # с HttpClient
, это важная часть:
var httpClient = new HttpClient(new HttpClientHandler()
{
UseDefaultCredentials = true
});
Затем, всякий раз, когда ваш httpClient
отправляет запрос с ответом 401, он автоматически отправляет запрос с учетными данными пользователя Windows.Это именно то, что будет делать веб-браузер.Поэтому используйте его, когда получите токен.
Возможно, вам придется отправить строку пользовательского агента в запросе, поскольку ADFS, похоже, ограничивает WIA для определенных агентов .
Получив токен, используйте его в запросах к веб-службе.
Ключ в том, что вы копируете действия браузера.Так что, если у вас возникли проблемы с настройкой того, как должны выглядеть HTTP-запросы, то получите доступ к GET-запросу в вашем API из браузера и используйте инструменты разработчика браузера, чтобы точно проверить, как выглядит трафик, и используйте эту информацию для репликации того же запроса.в вашем коде.