【问题标题】:Make Email as Username in ASP.NET Core Identity在 ASP.NET Core Identity 中将电子邮件作为用户名
【发布时间】:2016-10-04 08:44:29
【问题描述】:

我正在使用 ASP.NET Core Identity 创建一个用户,如下所示:

User user = new User {
  Email = "john@domain.com",
  Name = "John"
};            

await manager.CreateAsync(user, "JohnPass");

我收到一条错误消息,提示用户名无效,因为它为空。

如何配置身份以使用电子邮件作为用户名?

或者我需要手动设置用户名等于电子邮件?

【问题讨论】:

标签: asp.net-core asp.net-identity


【解决方案1】:

根据必填项使用以下代码

User user = new User {
  Id = id,// some auto generated id
  Email = "john@domain.com",
  UserName = "john@domain.com",// because you want to keep email id as UserName
  DisplayName= "John"
};            

await manager.CreateAsync(user, "JohnPass");

这种方法的一个潜在问题是,如果我们将电子邮件保留为“用户名”,那么在某些情况下,它可能不允许用户将来更改他们的电子邮件 ID。

【讨论】:

  • 使用这种方法进行验证可能会让用户感到困惑。如果用户使用已经存在的电子邮件注册,则来自UserManager.CreateAsync 的错误消息会显示“用户名 'foo@bar.com' 已被占用”,即使用户没有用户名的概念。
猜你喜欢
  • 2015-07-20
  • 2020-11-08
  • 1970-01-01
  • 2021-04-03
  • 1970-01-01
  • 2015-04-27
  • 1970-01-01
  • 2014-05-28
  • 2020-06-21
相关资源
最近更新 更多