В настоящее время у меня есть приложение, работающее с клиентом angular, использующее веб-API с проверкой подлинности Windows.
Сейчас я собираюсь заменить этот интерфейс на Blazor (на стороне клиента), однако я столкнулся с некоторыми проблемами, когда дело доходит до аутентификации.
В angular я просто установил для параметра withCredentials значение true, чтобы отправить требуемую информацию.
Приведенный ниже код работает по назначению с использованием серверной части Blazor, но, поскольку я хочу использовать клиентскую сторону Blazor, это не вариант и мне не очень помогает.
IEnumerable<SearchView> searchResults;
int NumberOfItems;
protected override async Task OnInitAsync()
{
using (var client = new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true }))
{
var result = await client.GetJsonAsync<Response<SearchView>>("http://localhost:80/search");
NumberOfItems = result.TotalItemCount;
searchResults = result.Items;
}
}
}
Приведенный выше код вызывает исключение PlatformNotsupportedException.
WASM: System.PlatformNotSupportedException: System.Net.Http.HttpClientHandler не поддерживается на текущей платформе. WASM: в System.Net.Http.HttpClientHandler.set_UseDefaultCredentials (значение System.Boolean) ‹0x1d63160 + 0x0000c> в ‹4399d2484a2a46159ade8054ed94c78e>: 0
Очевидно, что предоставленный код не поддерживается на стороне клиента Blazor, но если есть какие-либо альтернативные способы добиться того, чего я хочу, любые указатели и помощь будут оценены.
HttpClientHandler
? - person mjwills   schedule 11.06.2019