从UWP WebView获取响应标题

时间:2018-10-31 15:52:34

标签: c# webview uwp header

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

我正在开发一个UWP App,我有一个WebView进入网站(用户进行身份验证),我应该能够在他登录后获得access_token

是否可以从页面获取响应标头?

还是我必须手动做所有事情(创建HttpClient,发送带有登录信息的POST,并以这种方式获取标头响应?)

1 个答案:

答案 0 :(得分:1)

最重要的是,最新指南是,不应在Web视图内进行身份验证,现代方法是打开外部浏览器窗口,在此用户进行身份验证,然后使用自定义URI方案重定向到应用程序。有关此here on SO的详细信息,请参见。

现在,不幸的答案是WebView没有提供访问HTTP响应及其标头的内置方法。这是已请求的(例如,参见Martin Suchan的this blog post),但到目前为止尚未实现。如果您可以控制网页,则可以将身份验证信息存储在可访问的cookie中。即使在这里注入自定义JavaScript也无济于事,因为如果您在JS中启动AJAX请求,则可以获取HTTP标头,但无法获取已加载页面的标头。

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

您还可以使用内置的WebAuthenticationBroker,请参阅docs here