Blazor использует уже существующие куки в запросах http - PullRequest
0 голосов
/ 21 декабря 2018

Я играю с Blazor, пытаясь портировать довольно простое приложение.Оригинальный проект: Web API + JS SPA в одном решении, работающем на одном хосте / порту.Он использует куки-аутентификацию, как при попытке доступа к index.html, или любой контроллер проверяет куки-файл, и, если он неверен / отсутствует, пользователь перенаправляется на внешний сервер аутентификации, с которого веб-API получает обратный вызов после аутентификации пользователя, проверяет его, получаетзаявки и логины с использованием принципала, составленного из претензий.

Клиентское приложение (Angular) даже не имеет представления о файлах cookie или аутентификации, но, поскольку оно живет в одном домене, этот файл cookie из аутентификации web api являетсяповторно используется в запросах к тому же доменному API и таким образом аутентифицирован.

Я пытался сделать что-то подобное с Blazor, у меня есть решение на стороне сервера Blazor (сервер, который имеет старые вещи веб-API + вызовы Blazor в запуске + приложение, которое является серверомприложение стороны Blazor).Я попытался вручную перейти к ссылке входа на сервер, следуя потоку авторизации, cookie был установлен.Затем попытался сделать запрос от приложения Blazor к веб-API, и это не удалось.Попытался добавить жестко закодированный Cookie вручную, и тогда это сработало.Итак, насколько я понимаю, HttpClient не использует повторно / не имеет доступа к файлам cookie браузера?

Но, ну, нет проблем, подумал я, я могу просто сделать небольшое взаимодействие JS для чтения файлов cookie и добавления их в httpclient.Ой, подождите, файл cookie аутентификации имеет флаг HttpOnly и к нему нельзя получить доступ из JS.

Можно ли как-то заставить эту настройку работать без изменения аутентификации в веб-интерфейсе?

...