我已经覆盖了一系列我在ASP.NET Identity 2.0中使用的类,以便他们使用电子邮件地址字段而不是电子邮件字段。
尝试创建用户时,我说The UserName field is required.
我已尝试覆盖ApplicationUser
类中的UserName字段,该字段继承自IdentityUser
[Index(IsUnique = false)]
但是这只会导致创建唯一约束和非唯一索引。
如何覆盖IdentityUser
类以使用户名可以为空且非唯一,因为我不想使用它。
注意:我完全知道您可以使用AllowOnlyAlphanumericUserNames
类中的UserValidator
属性将电子邮件存储在用户名字段中。我真的不喜欢这种方法,只想删除这个约束,所以我可以存储没有用户名的记录。我将修改使用用户名查看电子邮件地址所需的任何功能。
答案 0 :(得分:1)
以下是IUserStore
- http://git.io/XZ3psA的完整实施情况。我不会说有很多工作要做。
答案 1 :(得分:0)
摆脱它的唯一真正方法是实现自己的IUserStore
。这听起来像很多工作几乎没有实际收获。
请参阅UserManager的方法FindByNameAsync()
,IUserStore<TUser, in TKey>
也要求方法Task<TUser> FindByNameAsync(string userName)
出现在实现类中。
此外,您还需要创建自己的IdentityDbContext
实现,或在ApplicationDbContext
中创建所需的表/关系以删除唯一性验证。这也是另一项工作。
这是不值得的。