簡體   English   中英

PasswordSignInAsync() 不返回任何結果

[英]PasswordSignInAsync() doesn't return any result

我的代碼為結果返回 null,為 result.success 返回 false。

    [HttpPost]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> Login(LoginViewModel model)
    {
        if (ModelState.IsValid)
        {
            Microsoft.AspNetCore.Identity.SignInResult result = await _signInManager.PasswordSignInAsync(model.UserName, model.Password, true, lockoutOnFailure: false);

            if (result.Succeeded)
            {
                return Redirect("~/AdminArea/UserManager/Index");
            }
            else
            {
                ModelState.AddModelError("Password", "The user name or pasword is wrong.");
                return View(model);
            }
        }
        return View(model);
    }
}

還需要在我的 Startup.cs 中確認 email 設置為 false,例如:

 services.Configure<IdentityOptions>(options => options.SignIn.RequireConfirmedEmail=false);

使用帶有身份的 ASP.NET Core 3.1。 請幫我找出問題。 提前致謝。

您可以先檢查很多事情:

  • 您的用戶是否正確存在於表 AspNetUsers 中?
  • 您在 AspNetUsers 表中使用了哪些值(字段 EmailConfirmed 必須為真)?
  • 最重要的是:當您使用 options.SignIn.RequireConfirmedEmail=false 時,也要使用 options.SignIn.RequireConfirmedAccount=false!

之后,是否可以實現以下代碼:

var result = await _signInManager.PasswordSignInAsync(Input.Email, Input.Password, Input.RememberMe, lockoutOnFailure: false);
            if (result.Succeeded)
            {
                _logger.LogInformation("User logged in.");
                return LocalRedirect(returnUrl);
            }
            if (result.RequiresTwoFactor)
            {
                return RedirectToPage("./LoginWith2fa", new { ReturnUrl = returnUrl, RememberMe = Input.RememberMe });
            }
            if (result.IsLockedOut)
            {
                _logger.LogWarning("User account locked out.");
                return RedirectToPage("./Lockout");
            }
            else
            {
                ModelState.AddModelError(string.Empty, "An error occured");
                return Page();
            }

問候。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM