我有一个 Code First MVC 4 应用程序,我已将 SimpleMembership 中的用户名替换为电子邮件 - 效果很好。
我通过将初始化更改为:
// Initialize database for Account
WebSecurity.InitializeDatabaseConnection("MyEntities", "Users", "UserId", "Email", autoCreateTables: true);
我有一个 Facebook 应用程序,我想用它来登录。我已经在普通(基于用户名)简单成员(member)网站上对此进行了测试,效果很好。
但是,当我尝试使用电子邮件/密码简单成员(member) 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);
知道如何让它发挥作用(然后在这个阶段请求用户名和电子邮件 - 或者仅在更容易的情况下才请求电子邮件)。谢谢。
最佳答案
我通过在确认表单中添加电子邮件字段来修复此问题 - 然后将代码更改为:
db.UserProfiles.Add(new UserProfile { UserName = model.UserName, Email = model.Email });
db.SaveChanges();
OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.Email);
关于asp.net-mvc - ASP.NET MVC 4 - 简单成员(member)资格,使用电子邮件而不是用户名时 Facebook 登录被破坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17130537/