C#MVC4使用不同的连接字符串时无法使用google登录

时间:2014-01-28 18:42:21

标签: c# asp.net-mvc asp.net-mvc-4 oauth google-authentication

外部Google身份验证存在一个奇怪的问题。基本上我使用的是默认MVC4互联网应用程序生成的几乎相同的代码。 在我的本地机器上一切正常。我可以使用谷歌帐户登录。

但是当我将连接字符串更改为网络上的外部数据库时,此代码:

OAuthWebSecurity.Login(result.Provider, result.ProviderUserId, createPersistentCookie: false)

返回FALSE因此它没有登录,我不知道为什么。 当我在网上发布整个网站时(使用相同的外部连接字符串,似乎在我的本地计算机上产生问题),也会发生同样的情况。

工作版和非工作版之间 ONLY 的区别在于web.config中的连接字符串不同。

有没有人遇到同样的问题?

修改

我没有提到。另一个连接字符串正常工作。它从数据库获取所有数据,但不知何故谷歌身份验证无声地失败。它只是没有登录。数据库模式和数据与我的本地数据库相同(我甚至生成了带有数据的sql脚本并应用于外部数据库) 我想登录的用户也在这个外部数据库中。

所以发生了什么: OAuthWebSecurity.Login返回false,因此我自动想要注册新用户,但之后用户已经在数据库中找到了,我得到的结论是“用户已经存在于数据库中”。

非常奇怪。

1 个答案:

答案 0 :(得分:0)

您是否使用CreateOrUpdateAccount方法在外部数据库中创建了用户?您可能没有将任何用户与您正在使用的Google凭据相关联...

登录过程按以下步骤操作:

  1. 嘿谷歌,告诉我谁登录。
  2. 谷歌告诉你一些UserId X
  3. OAuthWebSecurity向您的会员提供商询问GoogleUserId X
  4. 的用户
  5. 如果存在这样的用户,则会将其登录,如果没有,则登录失败...