2

我有一个 Code First MVC 4 应用程序,我在 SimpleMembership 中将用户名换成了电子邮件 - 效果很好。

我通过将初始化更改为此:

// Initialize database for Account
WebSecurity.InitializeDatabaseConnection("MyEntities", "Users", "UserId", "Email", autoCreateTables: true);

我有一个 Facebook 应用程序,我想用它来登录。我已经在一个香草(基于用户名)简单会员网站上对此进行了测试,它工作正常。

但是,当我尝试使用 Email/Password Simple Membership MVC 4 站点登录时 - 它的工作原理如下:

Associate your Facebook account.
Association Form
You've successfully authenticated with Facebook. Please enter a user name for this site below and click the Confirm button to finish logging in.

无论我在这里输入什么 - 我都会收到此错误:

"The username supplied is invalid."

db.UserProfiles.Add(new UserProfile { UserName = model.UserName });
db.SaveChanges();
OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);

任何想法我如何才能让它工作(并且在这个阶段其次请求用户名和电子邮件 - 或者只有在更容易的情况下才发送电子邮件)。谢谢。

4

1 回答 1

2

我通过在确认表单中添加一个电子邮件字段来修复它 - 然后将代码更改为:

db.UserProfiles.Add(new UserProfile { UserName = model.UserName, Email = model.Email });
db.SaveChanges();
OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.Email); 
于 2013-06-16T08:08:39.190 回答