Как сделать проверку на использование телефона в другой учетной записи?
Использую ASP.Net Identity, Asp.Net Core
Никак не могу понять, как при регистрации пользователя сразу проверить его номер телефона на использование в других учетных записях. Мне нужно, что бы не было повторных E-mail и номеров телефона.
С E-mail и UserName все работает, но отдельно проверить только телефон не получается.
Пробовал задать свойству UserName = model.PhoneNumber, но в таком случае войти в аккаунт я могу только с использованием номера телефона. Попытки получить пользователя по Email или просто через GetUserAsync() и сравнить его номер с номером из формы также не получились :(
Собственно код получения и обработки данных с формы
[HttpPost]
public async Task<IActionResult> Register(RegisterViewModel model)
{
User user = new User { Email = model.Email, UserName = model.Email, PhoneNumber = model.PhoneNumber };
// добавляем пользователя
var result = await _userManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
await _signInManager.SignInAsync(user, false);
return RedirectToAction("Lk", "Account");
}
else
{
foreach (var error in result.Errors)
{
ModelState.AddModelError(string.Empty, error.Description);
}
}
return View(model);
}
Ответы (1 шт):
Большое спасибо, tym32167
Не знаю на сколько это оптимальный вариант, но проверку на уникальности номера телефона сделал следующим образом:
User user = new User { Email = model.Email, UserName = model.Email, PhoneNumber = model.PhoneNumber };
bool IsPhoneAlreadyRegistered = await _userManager.Users.AnyAsync(item => item.PhoneNumber == model.PhoneNumber);
if (IsPhoneAlreadyRegistered)
{
// Телефон уже испольузется
}