c# - MembershipCreateUserException - 提供的用户名无效

标签 c# asp.net asp.net-membership asp.net-mvc-4 dotnetopenauth

在这一行我得到一个异常(exception) -

OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);

System.Web.Security.MembershipCreateUserException:提供的用户名无效。

进入这里的数据是

  • 供应商-“ Facebook ”
  • providerUserId - “1321311387573991”
  • model.UserName - “麦克斯·佩恩”

初始化工作正常使用

WebSecurity.InitializeDatabaseConnection("club", "User", "UserID", "UserName", autoCreateTables: true);

我找不到任何例子说明为什么它说用户名无效? 是否有某处标准来定义什么是正确的用户名?

最佳答案

我同样在寻找对此的解释。我不确定我是否完全理解,但在实验、调试和观察 intellitrace 事件之后,CreateOrUpdateAccount 似乎正在创建或更新 OAuthMembership 表中的一个条目,其中仅包含 Provider、ProviderUserId 和 UserId,这是通过查询 [在我的例子中] 基于此唯一用户名的 UserProfile 表。这样,如果您使用不同的提供商和 providerUserId 调用 CreateOrUpdateAccount,但使用相同的用户名,则两个提供商登录都绑定(bind)到您应用中的同一用户帐户。

在创建/更新相应的 OAuthMembership 记录之前,我必须添加一个 UserProfile。在 VS 模板中,它看起来像这样:

db.UserProfiles.Add(new UserProfile { UserName = model.UserName }); 
db.SaveChanges();

OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);

关于c# - MembershipCreateUserException - 提供的用户名无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12851476/

相关文章:

c# - MySqlDataReader - 阅读器关闭时尝试读取无效

asp.net - 如何从 JsonResult 对象获取实际的 JSON 进行单元测试?

asp.net - 在 ASP.net "Properly"- 成员身份或身份验证提供程序中实现 OpenID?

c# - 更新应用程序后 ASP.NET MVC 停止工作 - MembershipUser 出现问题

c# - 包含一个数字以自动生成密码

c# - System.IO.File.Delete()/System.IO.File.Move() 有时不起作用

c# - 使用 C# 获取解决方案文件的父文件夹的路径

c# - 从后面的 C# 代码调用 JavaScript

c# - 服务器无法在发送 HTTP header 后附加 header

javascript - 在 GridView 中显示没有绑定(bind)数据且未检索到结果的不同消息