繁体   English   中英

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

[英]C# MVC4 Cannot login with google when using different connection string

我对外部Google身份验证有一个奇怪的问题。 基本上,我使用的是几乎与默认MVC4 Internet应用程序生成的代码相同的代码。 在我的本地计算机上一切正常。 我可以使用Google帐户登录。

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

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

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

工作版本和不工作版本之间唯一的区别是web.config中的连接字符串不同。

有人遇到过同样的问题吗?

编辑

我没提。 另一个连接字符串正常工作。 它从数据库中获取所有数据,但是Google身份验证以某种方式静默失败。 它只是不登录。数据库架构和数据与我的本地数据库相同(我什至用数据生成了sql脚本并应用于外部数据库)。我要登录的用户也在此外部数据库中。

所以发生了什么:OAuthWebSecurity.Login返回false,所以我自动希望注册新用户,但是随后该用户已经在数据库中找到,并且我得到类似“该用户已存在于数据库中”的信息。

很奇怪。

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

登录过程按以下步骤进行:

  1. 嗨,谷歌,告诉我谁登录了。
  2. Google告诉您一些UserId X
  3. OAuthWebSecurity向您的成员资格提供者询问具有GoogleUserId X的用户
  4. 如果存在这样的用户,则将其登录,如果没有,登录失败...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM