如何在 ASP.NET Core Identity 中允许空用户名

fra*_*tor 5 asp.net-core asp.net-core-identity

我的应用程序的注册工作流程允许仅在确认电子邮件地址后设置用户名。使用 Microsoft.AspNetCore.Identity 1.1.1.0 中的默认值和实体框架会在数据库中生成一个 AspNetUsers 表,其中包含可为空的 UserName 列。但是,如果我尝试向 UserManager.CreateAsync() 提供具有 null UserName 的 IdentityUser 实例,则会收到错误:“用户名 '' 无效,只能包含字母或数字。”。

我想避免设置临时的非空值,因为用户名应该是唯一的,但不是电子邮件地址。其他解决方法(例如 guid)看起来就像是一个 hack。

允许空用户名为空的最佳方法是什么?

fra*_*tor 1

看起来用户名不应该为空。单独的 DisplayName 属性或类似属性可能是可行的方法。https://github.com/aspnet/Identity/issues/1186