Google oAuth无法使用嵌入式浏览器

时间:2016-08-03 18:16:12

标签: oauth visual-studio-2015 webbrowser-control google-oauth google-oauth2

我正在使用Visual Studio 2015和Update 3.我有一个带有WebBrowser控件的Windows窗体项目。

VisualStudio Version

该节目能够像周一(以及之前几年)预期的那样与谷歌(AdWords,谷歌分析,谷歌驱动器)进行oAuth合作。今天我们得到“您的浏览器不再受支持”重定向,无法进行身份验证。

Not Supported

Internet Explorer的本地版本是11.494.10586.0 Internet Explorer Version

当我手动将oAuth url复制到Internet Explorer(而不是Edge)时,oAuth进程正常工作(但是c#程序显然无法解析结果)。 oAuth网址也适用于Edge,Chrome和Firefox。

在代码中,WebBrowserControl1.Version的结果如下:

 img{
    width :100%;
 }

<div class="container">
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-7">
  <img src="http://placehold.it/550x350" class="img-responsive">
</div>
<div class="col-xs-12 col-sm-12 col-md-5">
  <h2>How do you auto-resize a large image so that it will fit into a smaller width div container whilst maintaining it's width:height ratio?</h2>
  <p>How do you auto-resize a large image so that it will fit into a smaller width div container whilst maintaining it's width:height ratio?</p>
</div>

请注意在Visual Studio和Internet Explorer中如何反转494和0 。我不确定这是否与问题有关,但我注意到这是一个差异

我创建了一个新的空白Forms项目,添加了一个WebBrowser(System.Windows.Forms.WebBrowser)。在加载时,只有一行代码webBrowser1.Navigate(oAuthURL);这再现了错误。

以下是我们正在使用的oAuth网址,供参考 (修改后的客户端ID和重定向URI)

{11.0.10586.494}
    Build: 10586
    Major: 11
    MajorRevision: 0
    Minor: 0
    MinorRevision: 494
    Revision: 494
    _Build: 10586
    _Major: 11
    _Minor: 0
    _Revision: 494

这与Windows的最新版本一致,但这可能是巧合。似乎有很多关于类似问题的在线聊天,这可能是相关的。

还有其他人遇到过这种情况吗?

3 个答案:

答案 0 :(得分:1)

我们的应用程序存在同样的问题。我们正在使用谷歌的OAuth2来访问Google Calendar API。像.NET的WebBrowserControl这样的浏览器在所有已安装的Internet Explorer版本上使用IE7仿真,我认为Google不再支持此版本了。

我在Stackoverflow Question 18333982找到了一个很好的解决方法。使用那里的代码,我能够接受OAuth2。

HTH

答案 1 :(得分:0)

您真正的问题不是您的浏览器已过时,而是在IE7仿真模式下调用它。一旦将仿真模式更改为高于7的值,例如8(如果您知道用户有浏览器,则甚至是11)OAuth2将再次开始工作。以下是描述如何设置仿真模式的文档:

MSDN

基本上,您需要做的是为密钥添加DWORD值,例如:

HKCU\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION

MyExeName.exe : DWORD = 8000 (Decimal)

答案 2 :(得分:0)

根据Tuncay的解决方案,它对我有用,但唯一的变化是该值不是0x00008000(hexa),而是8000(十进制)表示IE 8.0。

因此,请按照其MSDN链接的指示来了解为每个IE版本输入的值。

我输入了oauthbrowser64.exe = 9999,这是今天需要的Total Commander&#34; Cloud&#34;插件,它的工作原理。