首页 文章

Google在 生产环境 服务器上登录不同

提问于
浏览
0

我想在现有的asp.net应用程序上实现Google登录 . 我已经在我的localhost上测试了它并且运行良好,但是一旦我在 生产环境 服务器上部署它就没有 . 我注意到的一件事是不同的是屏幕上的Projet / Application名称“选择一个帐户” .

1-我可以在测试与 生产环境 服务器上使用相同的客户端ID吗?

2-如果google登录页面上的应用程序名称不同,是否表示我的Google组织中已有一个项目设置了身份验证API?我想只有组织的管理员才知道?

3-我该如何调试?

以下是我如何构建它的更多细节:

  • 我正在使用Javascript调用Google登录

  • 经过身份验证后,我将令牌发布到Aspx页面,该页面使用GoogleJsonWebSignature.ValidateAsync验证令牌的完整性 .

  • 验证令牌后,我确认用户在我的数据库中以允许登录 .

** EDIT **

我发现我的 生产环境 服务器上有一个我在本地主机上没有的错误:

System.TypeInitializationException:'Google.Apis.Json.NewtonsoftJsonSerializer'的类型初始值设定项引发了异常 . ---> System.IO.FileLoadException:无法加载文件或程序集'Newtonsoft.Json,Version = 10.0.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed'或其依赖项之一 . 定位的程序集的清单定义与程序集引用不匹配 . (HRESULT异常:0x80131040)

1 回答

  • 0

    最后,我的问题与Google客户端ID设置无关,因此,为了回答我的问题,我可以在本地主机和 生产环境 服务器上使用相同的客户端ID .

    错误是我的 生产环境 服务器上的web.config中缺少一些信息(因为该文件未与项目的其余部分一起发布) . 所以我在web.config中添加了这个以使它工作:

    <runtime>
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="*********" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />
      </dependentAssembly>
     </assemblyBinding>
    </runtime>
    

相关问题