外部Google身份验证存在一个奇怪的问题。基本上我使用的是默认MVC4互联网应用程序生成的几乎相同的代码。 在我的本地机器上一切正常。我可以使用谷歌帐户登录。
但是当我将连接字符串更改为网络上的外部数据库时,此代码:
OAuthWebSecurity.Login(result.Provider, result.ProviderUserId, createPersistentCookie: false)
返回FALSE因此它没有登录,我不知道为什么。 当我在网上发布整个网站时(使用相同的外部连接字符串,似乎在我的本地计算机上产生问题),也会发生同样的情况。
工作版和非工作版之间 ONLY 的区别在于web.config中的连接字符串不同。
有没有人遇到同样的问题?
修改
我没有提到。另一个连接字符串正常工作。它从数据库获取所有数据,但不知何故谷歌身份验证无声地失败。它只是没有登录。数据库模式和数据与我的本地数据库相同(我甚至生成了带有数据的sql脚本并应用于外部数据库) 我想登录的用户也在这个外部数据库中。
所以发生了什么: OAuthWebSecurity.Login返回false,因此我自动想要注册新用户,但之后用户已经在数据库中找到了,我得到的结论是“用户已经存在于数据库中”。
非常奇怪。
答案 0 :(得分:0)
您是否使用CreateOrUpdateAccount方法在外部数据库中创建了用户?您可能没有将任何用户与您正在使用的Google凭据相关联...
登录过程按以下步骤操作: