Идентификатор ASP.NET использует электронную почту вместо имени пользователя

Как я могу использовать электронную почту вместо имени пользователя в новой системе идентификации ASP.NET?

Я попытался изменить класс RegisterViewModel:

[Display(Name = "Email address")]
[Required(ErrorMessage = "The email address is required")]
[EmailAddress(ErrorMessage = "Invalid Email Address")]
public string UserName { get; set; }

но когда я ввожу почтовый адрес, я получаю сообщение об ошибке:

User name [email protected] is invalid, can only contain letters or digits.

Ответ 1

У вас есть 2 варианта решения этой проблемы, отключив этот валидатор или создайте собственный UserValidator.

Вы можете отключить его следующим образом:

UserManager.UserValidator = new UserValidator<TUser>(UserManager) 
                                    { 
                                       AllowOnlyAlphanumericUserNames = false 
                                    };