Получите заголовки ответа из UWP WebView - PullRequest
0 голосов
/ 31 октября 2018

Я искал часы и не мог найти решение этой проблемы.

Я занимаюсь разработкой приложения UWP, и у меня есть WebView, который идет на веб-сайт (где пользователь проходит аутентификацию), и я смогу получить access_token после того, как он войдет в систему.

Есть ли способ получить заголовок ответа со страницы?

Или я должен сделать все вручную (создать HttpClient, отправить сообщение POST с информацией для входа и получить ответ заголовка таким образом?)

1 Ответ

0 голосов
/ 31 октября 2018

Прежде всего, последнее руководство заключается в том, что аутентификацию не следует выполнять внутри веб-представления. Современный подход заключается в открытии внешнего окна браузера, где пользователь проходит аутентификацию, а затем перенаправляется обратно в приложение с использованием пользовательской схемы URI. Смотрите подробный пост по этому здесь на SO .

Неудачный ответ таков: WebView не предлагает встроенного способа доступа к HTTP-ответу и его заголовкам. Это было запрошено (см., Например, это сообщение в блоге от Martin Suchan), но до сих пор не реализовано. Если у вас есть контроль над веб-страницей, вы можете сохранить информацию об аутентификации в файлах cookie, которые доступны. В этом даже не может помочь внедрение собственного JavaScript, поскольку получение заголовков HTTP возможно, если вы инициируете запрос AJAX в JS, но вы не можете получить заголовки для страницы, которая уже загружена.

Как упомянуто в комментариях выше, лучшим решением было бы кодировать логин вручную, используя HttpClient или посмотреть, поддерживает ли служба правильный поток OAuth2 / OpenID Connect, и в этом случае вы можете использовать библиотеку , такую ​​как IdentityModel.OidcClient2, который может выдержать большую часть тяжелой работы для вас.

Вы также можете использовать встроенный WebAuthenticationBroker, см. документы здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...