身份验证期间,“。FindByNameAsync()”始终返回“ NULL”

时间:2019-01-31 19:06:55

标签: c# asp.net-core asp.net-core-mvc asp.net-core-2.2

我正在用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; }

}

请帮助我摆脱这个问题。

我也使用了“ register.Name”,但是没有用! 这些值也在DB中。我也尝试过.FindByEmailAsync(register.Mail),但是没有用。 我在“ AccountController.cs”的开头使用断点,并且看到“ register.Mobile”的值为“ CORRECT”,但不幸的是,“ user”的值仍为“ NULL”! 我还创建了一个新项目,并在其中实施了以前的项目,但是它也没有起作用。 请注意,我在计算机上安装了Windows 10和VisualStudio 2017 15.9.5和VisualStudio 2019 Preview 1.1。

0 个答案:

没有答案