首页 > 解决方案 > WebView2 WPF 谷歌登录

问题描述

简单的问题,不确定是否有解决此问题的方法。我在 WPF C# 应用程序中使用 WebView2 制作了一个简单的浏览器(我这样做是为了在浏览 webview 所在的 url 时能够使用 shell 应用程序)。它使用与 edge-chromium 相同的用户代理,直到几个月前,我才能够像在普通浏览器中一样登录谷歌。现在,如果我尝试登录,我会从谷歌收到“不支持的浏览器”错误。当然,我的应用程序没有任何改变,但谷歌说它不支持从 webview 登录(“浏览器:嵌入在不同的应用程序中”):

https://support.google.com/accounts/answer/7675428?hl=zh-CN

我真的不知道是否有任何解决方法。我知道我昨天登录了(我认为这可能要归功于缓存或类似的东西)所以如果有登录的解决方法我应该能够保持登录状态。我知道他们建议使用谷歌API: https ://developers.google.com/identity/protocols/oauth2/native-app

我已经在 Unity3d 游戏中使用它来登录我的谷歌驱动器。但是我不确定如何在调用该 API 时将我的 WebView2 设置为登录(我知道我可以使用响应来进行新的 API 调用,例如,将文件上传到我的谷歌驱动器,但我没有'不知道如何设置我的 webview 被记录并能够去谷歌驱动器 url 并登录任何谷歌应用程序)。

我的问题是你是否知道如何解决这个问题,或者你是否知道如何解决这个问题。或者你认为这根本不可能?

编辑。只是发现这是任何 webview 的问题。就像您在这里看到的 github.com/MicrosoftEdge/WebView2Feedback/issues/1647 一样,这是 google 的安全废话,它没有找到解决方案,而是阻止了每个 webview 登录到他们的服务(他们可以解决中间人问题在很多方面,比如要求密码应用程序,要求更有限的 webview 沙箱窗口等......他们只是阻止了一切)。

因此,实际上并没有任何解决方案。即使使用 Oauth API,您也只能登录并等待响应,但您无法像在常规浏览器中那样访问 google,您只能进行更多 API 调用……这不是我需要的。我能想到的唯一解决方案是等待微软或其他人创建一个“沙盒环境”,默认情况下将在谷歌的登录页面中激活(并且谷歌将允许登录),并将恢复登录后返回常规 Web 视图。

标签: c#wpfgoogle-signinwebview2

解决方案


推荐阅读