Мы столкнулись с очень странной проблемой с библиотекой Azure AD в приложении веб-API asp.net.Когда мы пытаемся получить токен с помощью AcquireTokenAsync с сертификатом, ответа нет, а затем время ожидания.
Причудливая часть:
Если мы копируем один и тот же код в консольное приложение, консольное приложение работает, немедленно получает токен.
, если мы используем fiddler для запуска прокси, который обгоняетПрокси-сервер нашей компании по умолчанию, приложение webapi работает.
Используемый нами код тестирования в точности соответствует документации.
Пример используемого нами кода:
public async Task < string > GetTokenAsync() {
var context = new AuthenticationContext(authority);
var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
var results = store.Certificates.Find(X509FindType.FindByThumbprint, thumbprint, false);
var cert = new ClientAssertionCertificate(clientid, results[0]);
var token = await context.AcquireTokenAsync(resource, cert).AccessToken;
return token;
}
В основном коддолжен работать должным образом, поскольку это непосредственно из документации.это что-то относительно сети?
Ошибка, которую мы получаем вкратце:
в System.Web.Http.Results.ExceptionResult..ctor (Исключение исключений, зависимости IDependencyProvider) в System.Web.Http.ApiController.InternalServerError (Исключение исключения) в WebApplication1.Controllers.TokenController.d__0.MoveNext () в C: \ Users \ QiaoH \ source \ repos \ WebApplication1 \ WebApplication1 \ Controllers \ TokenController.cs: строка 55 --- Трассировка конца стека отпредыдущее местоположение, в котором было сгенерировано исключение в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача-задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача-задача) в System.Threading.Tasks.xte.Exception.HasКонец трассировки стека от предыдущего местоположения, в котором было сгенерировано исключение в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача-задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача-задача) в System.WebControAp.llerActionInvoker.d__1.MoveNext () --- Конец трассировки стека из предыдущего местоположения, в котором было сгенерировано исключение в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача Task) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAgnoDestificationSystem.Web.Http.Controllers.ActionFilterResult.d__5.MoveNext () Конец трассировки стека из предыдущего местоположения, в котором было сгенерировано исключение в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача-задача) в System.Runtime.CompilerServices.ebserSDWNA(Задача) в System.Web.Http.Dispatcher.HttpControllerDispatcher.d__15.MoveNext ()