Во время аутентификации ".findbynameasync()" всегда возвращает "NULL"
Я пишу проект с помощью asp.net ядро mvc 2.2, моя проблема заключается в следующем:
Во время аутентификации ".FindByNameAsync()" всегда возвращает "NULL", и поэтому процесс аутентификации не является успешным.
Моя регистрационная форма содержит:
<form asp-controller="Account" asp-action="Login" method="post"> <div asp-validation-summary="All" class="Danger"></div> <div class="form-group"> <div> <input asp-for="Mobile" type="text" class="form-control" style="direction:ltr;"> <span asp-validation-for="Mobile" class="text-danger"></span> </div> </div> <div class="form-group"> <div> <input asp-for="Password" type="password" class="form-control" style="direction:ltr;"> <span asp-validation-for="Password" class="text-danger"></span> </div> </div> <br /> <div class="form-group"> <div> <input type="submit" class="btn btn-lg btn-primary btn-block" style="text-align: center;" value="LOG IN" /> </div> </div> </form>и мой AccountController.cs содержит:
[HttpPost] public async Task<IActionResult> Login(Register register) { if (!ModelState.IsValid) return View(); var user = await _userManager.FindByNameAsync(register.Mobile); if(user!=null) { var result = await _signInManager.PasswordSignInAsync(user, register.Password, false, false); if(result.Succeeded) { return RedirectToAction("Welcome", "Account"); } } ModelState.AddModelError("", "User name/password not found"); return View(); }и моя таблица базы данных:
public class Register { [Key] [Required] public int Id { get; set; } [ForeignKey("IdFK")] public ICollection<Advertisement> Advertisements { get; set; } [Required] public string Mobile { get; set; } public string Name { get; set; } public string Family { get; set; } [Required] public string Password { get; set; } [EmailAddress] public string Mail { get; set; } } }Пожалуйста, помогите мне избавиться от этой проблемы
Что я уже пробовал:
Я также использовал регистр.Имя, но это не сработало!!!
Значения тоже были в ДБ. Я попробовал с ним .FindByEmailAsync(register.Mail) тоже, но это не сработало.
Я использовал точку останова в начале "AccountController.cs" и увидел "register.Мобильное" значение было "правильным", но, к сожалению, "пользовательское" значение было "нулевым"!!!
Я также создал новый проект и внедрил в него предыдущий проект, но он не сработал.
Обратите внимание, что на моем компьютере установлены Windows 10 и VisualStudio 2017 15.9.5 и VisualStudio 2019 preview 1.1.
CHill60
Я переформатировал ваш пост, чтобы правильно отформатировать фрагменты кода, но я также удалил все заглавные слова - использование всех заглавных букв рассматривается как крик в интернете - другими словами, люди думают, что это грубо. Постарайтесь избежать этого.
Richard Deeming
Если он возвращается null
это означает , что соответствующая запись не существует в базе данных.
Если вы видите его в базе данных, то, скорее всего, вы либо смотрите не на ту базу данных, либо смотрите не в ту таблицу.