Вот как раз от UserName не избавиться.
IdentityUser является реализацией интерфейса
IUser. Можете взять
исходники Identity и изменить интерфейс IUser.
А можно и попытаться перекрыть UserName емейлом и исключить из модели бд. Тогда, по идее, UserName никак участвовать не будет, но на практике не проверял.
public class MyUser:IdentityUser
{
[AlwaysValid] //Всегда валидно
[NotMapped] //не маппим в EFCore
public string UserName
{
get => Email;
set => Email = value;
}
}
public class AlwaysValid : ValidationAttribute
{
public override bool IsValid(object value) => true;
}