【发布时间】:2021-02-06 02:59:51
【问题描述】:
我们有一个类库,它使用 .NET WebBrowser 控件来授权对第三方 API 的访问,无论是使用第三方的 oAuth2 授权流程还是使用 Google 两步验证(又名 2-factor/multi -因素身份验证等)。
第一个流程运行良好;提示用户输入他们的电子邮件和密码,然后单击确认。没有问题。
但是,一旦用户(通过他们的移动设备)确认,第二个流程就会终止。 WebBrowser 控件中的弹出网页不会移动到已验证的页面,它只是坐在那里,就好像在等待用户验证一样。
我们的代码为WebBrowserDocumentCompleted 事件实现了一个事件处理程序,并且每当页面更新时都会按预期触发。不过,它不会在用户通过他们的设备确认后触发。
我已经在网络上进行了相当不错的搜索,并因此获得了有关正在发生的事情的提示,我还查看了 WebView2 和 CefSharp 但后者需要一个额外的 C++ 库,我' d 宁愿不捆绑或不必担心,前者在花了几个小时试图让一个基本的演示工作(并且失败)之后处于一个非常新的开发状态。
因此,如果可能的话,我想提出一个继续使用WebBrowser 控件的解决方案。
注意:我已经根据Version 属性检查了正在使用的版本,它是 11。我正在针对 .NET 4.5.2 的 Windows 10 Pro 机器上使用 VS 2019 进行开发(以获得最大的向后兼容性)。
【问题讨论】:
-
我建议运行 C:\Windows\System32\F12\IEChooser.exe 来查看 JS 控制台或观察网络流量。
标签: c# .net class-library