从UWP WebView获取响应标头



我已经搜索了几个小时,找不到这个问题的任何解决方案。

我正在开发一个UWP应用程序,我有一个WebView,它可以访问一个网站(用户在那里进行身份验证(,我应该能够在他登录后获得access_token

有没有办法从页面中获取响应标头?

或者我必须手动完成所有操作(创建HttpClient,发送带有登录信息的POST,并以这种方式获得标头响应?(

首先,最新的指导意见是,身份验证不应在web视图中进行,现代方法是打开外部浏览器窗口,用户在其中进行身份验证,然后使用自定义URI方案重定向回应用程序。请在SO.上查看关于这一点的详细帖子

现在,不幸的答案是WebView没有提供访问HTTP响应及其标头的内置方式。这已经被要求了(例如,参见Martin Suchan的这篇博客文章(,但到目前为止还没有实现。如果您可以控制网页,那么您可以将身份验证信息存储在可访问的cookie中。即使注入自定义JavaScript也没有帮助,因为如果您在JS中启动AJAX请求,则可以获得HTTP标头,但无法获得已加载页面的标头。

正如上面的评论中所提到的,更好的解决方案是使用HttpClient手动编码登录,或者查看服务是否支持正确的OAuth2/OpenID Connect流,在这种情况下,您可以使用像IdentityModel.OidcClient2这样的库,它可以为您处理大部分繁重的工作。

您也可以使用内置的WebAuthenticationBroker,请参阅此处的文档。

最新更新