mak_ufo
@mak_ufo

Как убрать ненужные данные из таблицы пользователя при регистрации через Identity?

Делаю тут авторизаию через Identity. Создал модель пользователя, которую унаследовал от IdentityUser. И если при регистрации нового пользователя не укажу UserName, то получаю ошибку, что это поле обязательно. Но если мне не нужно это поле в моей модели, то как быть?

Пробовал через user-validation, но безуспешно.

P. S. Core 2.0
  • Вопрос задан
  • 249 просмотров
Пригласить эксперта
Ответы на вопрос 1
Вот как раз от 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;
                   
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы