Winforms Google Oauth2同意屏幕允许按钮已禁用

Winforms Google Oauth2同意屏幕允许按钮已禁用,winforms,google-api,google-oauth,google-authentication,Winforms,Google Api,Google Oauth,Google Authentication,我有一个WindowForms应用程序,它使用GoogleOAuth2进行用户身份验证。 在谷歌控制台中,我使用我的学校电子邮件创建了一个项目,这意味着它有一个组织,我已经将我的项目设置为“内部”,这意味着我不需要验证应用程序(如果我错了,请更正我)。 我没有启用任何库API,因为我使用的唯一作用域是“openid电子邮件配置文件” 去年,该应用程序运行良好。用户可以进行身份验证,应用程序可以从谷歌获得访问令牌,然后与我的另一台服务器交换代码以访问其他API。 然而,我最近发现同意屏幕中的“允许

我有一个WindowForms应用程序,它使用GoogleOAuth2进行用户身份验证。 在谷歌控制台中,我使用我的学校电子邮件创建了一个项目,这意味着它有一个组织,我已经将我的项目设置为“内部”,这意味着我不需要验证应用程序(如果我错了,请更正我)。 我没有启用任何库API,因为我使用的唯一作用域是“openid电子邮件配置文件”

去年,该应用程序运行良好。用户可以进行身份验证,应用程序可以从谷歌获得访问令牌,然后与我的另一台服务器交换代码以访问其他API。 然而,我最近发现同意屏幕中的“允许”按钮和“拒绝”按钮都被禁用

我环顾四周,它不像“未经验证的应用程序”,因为它只是禁用了按钮,你可以看到下面的图片

有人知道谷歌Oauth2桌面应用程序出了什么事吗?我读过

在GoogleOAuth2文档中,我不知道它的确切含义

回答:注意:已安装的应用程序或设备不支持增量授权。我不知道它到底是什么意思。 当请求用户访问用户数据或其他资源的权限时,您可以使用预先请求初始请求中的所有作用域,或者仅在需要时请求作用域。使用增量授权,应用程序最初仅请求启动应用程序所需的作用域,然后在向用户标识请求原因的上下文中,在需要新权限时请求其他作用域

已安装的应用程序(如win forms应用程序)不支持它。只需一次请求所有作用域,然后重试

实际问题的可能解决办法 想法一:

尝试启用“不太安全的应用程序”选项,有关更多信息,请参阅此处:

想法二:

内部应用程序仅适用于同一G套件域中的用户,并且该应用程序与您所有用户所属的云组织相关联,您无需进行验证

我会再次检查您是否已登录corect gsuite帐户。

回答:注意:安装的应用程序或设备不支持增量授权。我不知道它到底是什么意思。 当请求用户访问用户数据或其他资源的权限时,您可以使用预先请求初始请求中的所有作用域,或者仅在需要时请求作用域。使用增量授权,应用程序最初仅请求启动应用程序所需的作用域,然后在向用户标识请求原因的上下文中,在需要新权限时请求其他作用域

已安装的应用程序(如win forms应用程序)不支持它。只需一次请求所有作用域,然后重试

实际问题的可能解决办法 想法一:

尝试启用“不太安全的应用程序”选项,有关更多信息,请参阅此处:

想法二:

内部应用程序仅适用于同一G套件域中的用户,并且该应用程序与您所有用户所属的云组织相关联,您无需进行验证


我会再次检查您是否已登录corect gsuite帐户。

在互联网上进行更多研究后,原因是谷歌已更新了反钓鱼协议“MITM-Man In the Middle”,因此,像Winform中的webbrowser控件这样的嵌入式web浏览器现在无法再执行Oauth操作,因为它无法保护令牌。 你可以在下面的链接中阅读

为了解决这个问题,我使用设备web浏览器而不是web浏览器。我使用这个github中的代码


我要结束这个问题。

在对互联网进行了更多的研究之后,原因是谷歌已经更新了反钓鱼协议“MITM-Man In the Middle”,因此像Winform中的webbrowser控件这样的嵌入式web浏览器现在不能再做Oauth的事情了,因为它无法保护令牌。 你可以在下面的链接中阅读

为了解决这个问题,我使用设备web浏览器而不是web浏览器。我使用这个github中的代码


我结束这个问题。

我想你应该读一下这篇文章:

简要说明: 您应该将Internet Explorer的默认模拟模式从默认模式(IE7)更改为IE11

为此,应创建此注册表值:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"yourappname.exe"=dword:00002af8
或者,如果您的32位应用程序运行在64位操作系统上:

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"yourappname.exe"=dword:00002af8
注:

  • “yourappname.exe”是提示嵌入式浏览器的可执行文件的名称(没有完整路径)
  • 要编辑注册表,您需要管理员权限。因此,您需要安装程序在客户的计算机中进行此修改

  • 希望能有所帮助。

    我想你应该看看这篇文章:

    简要说明: 您应该将Internet Explorer的默认模拟模式从默认模式(IE7)更改为IE11

    为此,应创建此注册表值:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
    "yourappname.exe"=dword:00002af8
    
    或者,如果您的32位应用程序运行在64位操作系统上:

    [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
    "yourappname.exe"=dword:00002af8
    
    注:

  • “yourappname.exe”是提示嵌入式浏览器的可执行文件的名称(没有完整路径)
  • 要编辑注册表,您需要管理员权限。因此,您需要安装程序在客户的计算机中进行此修改
  • 希望能有所帮助