asp.net-mvc - ASP.NET MVC 4 - 简单成员(member)资格,使用电子邮件而不是用户名时 Facebook 登录被破坏

标签 asp.net-mvc asp.net-mvc-4 facebook-authentication simplemembership

我有一个 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/

相关文章:

c# - 如何在jquery中访问@Html.RadioButtonFor

asp.net-mvc - 如何将 Html.ValidationSummary 与 Ajax.BeginForm 一起使用?

asp.net-mvc - User.Identity.IsAuthenticated 始终为 True

asp.net-mvc-4 - 如何使用 mvc 4 基于数据库中的值创建动态控件

asp.net-mvc-4 - Razor MVC,将可跨母版页、partiview 和 View 访问的全局变量放在哪里?

asp.net-mvc-4 - Glimpse 使用 EPiServer 7.1 MVC 4 抛出 NullReferenceException

facebook - 在我的应用程序设置中看不到 "Enhanced Auth Dialog"设置

javascript - 何时在 ASP.NET MVC 中使用 knockout javascript

java - Spring Security 3 + GAE——我真的需要整个堆栈吗?

android - 首次登录 Facebook 后应用程序崩溃