C# 使用Google OAuth登录时出现字符串格式异常
我有一个ASP.NETMVC5网站,我想通过Google、Twitter、Facebook和其他一些提供商添加外部登录。我将遵循本教程: 现在,我正在努力让谷歌登录工作。我在谷歌注册了我的网站,获得了客户ID和客户机密。我将这两个值保留在PrivateSettings.config文件中,出于安全原因,我将其保留在源代码管理之外C# 使用Google OAuth登录时出现字符串格式异常,c#,asp.net,oauth-2.0,google-oauth,C#,Asp.net,Oauth 2.0,Google Oauth,我有一个ASP.NETMVC5网站,我想通过Google、Twitter、Facebook和其他一些提供商添加外部登录。我将遵循本教程: 现在,我正在努力让谷歌登录工作。我在谷歌注册了我的网站,获得了客户ID和客户机密。我将这两个值保留在PrivateSettings.config文件中,出于安全原因,我将其保留在源代码管理之外 <appSettings> <add key="GOOGLE_CLIENT_ID" value="<snip>"/>
<appSettings>
<add key="GOOGLE_CLIENT_ID" value="<snip>"/>
<add key="GOOGLE_CLIENT_SECRET" value="<snip>"/>
</appSettings>
我还在项目属性中启用了ssl
当我启动我的应用程序(在本地,我还没有部署它)并尝试使用我的个人帐户通过Google登录时,登录过程会在public async Task ExternalLoginCallback(string returnUrl)
方法中失败,如下所示:
var result = await SignInManager.ExternalSignInAsync(loginInfo, isPersistent: false);
它抛出初始化字符串的格式不符合从索引0开始的规范的异常loginInfo
不为空(在调试时选中,并且在执行此行之前有一个检查,如果loginInfo
为空,则会重定向该行),并包含来自Google的我的信息(邮件、姓名)
知道这是什么原因吗?已解决。当连接字符串中存在问题时,会引发此异常。我正在使用实体框架和MySQL。我必须按照本教程使用MySQL提供程序启用ASP.NET标识。现在GoogleOAuth可以工作了,传统的注册和登录也可以
app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
{
ClientId = ConfigurationManager.AppSettings["GOOGLE_CLIENT_ID"],
ClientSecret = ConfigurationManager.AppSettings["GOOGLE_CLIENT_SECRET"]
});
var result = await SignInManager.ExternalSignInAsync(loginInfo, isPersistent: false);