c# - 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 - 我正在研究清单,但并非一切都突然变得清晰
- python - Pandas 转换到新列的有效方法
- java - 为什么在为字符串参数列表传递整数列表时没有出现编译错误?
- php - 保存 belongsTo 关系
- r - 将信息放在R中的列中的问题
- azure - Azure App Gateway SSL 卸载到数据中心服务器?
- javascript - Javascript 溢出函数无法识别我的字符串中的选项卡之一
- tcl - TCL Expect:如何删除尾随换行符
- python - 似乎无法让 regex.search 返回任何内容
- jenkins - 通过 Jenkins Pipeline 验证软件