C# 为什么在MVC5中signinmanager.passwordsigninasync方法始终返回失败

C# 为什么在MVC5中signinmanager.passwordsigninasync方法始终返回失败,c#,asp.net-mvc-5,C#,Asp.net Mvc 5,以下是我的登录方法: [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) { if (!ModelState.IsValid) { return View(model); } //This doesn't count login fai

以下是我的
登录方法:

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
   if (!ModelState.IsValid)
   {
       return View(model);
   }
   //This doesn't count login failures towards account lockout
    //To enable password failures to trigger account lockout, change to shouldLockout: true
   var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
   switch (result)
   {
       case SignInStatus.Success:
           return RedirectToLocal(returnUrl);
       case SignInStatus.LockedOut:
           return View("Lockout");
       case SignInStatus.RequiresVerification:
           return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
       case SignInStatus.Failure:
       default:
           ModelState.AddModelError("", "Invalid login attempt.");
           return View(model);
   }
}
以下是我的行动方法:

[AuthAttribute]
[CustomAuthorize("Admin", "SuperAdmin")]
public ActionResult GetEmployeeList(string sortOrder, string currentFilter, string searchString, int? page)
{
    return View(db.GetListviewData().ToList());
}
我尝试使用授权筛选器检查数据库中的用户角色,但当我尝试登录应用程序时,
SignInManager.PasswordSignInAsync
方法每次都返回失败


请帮助我,提前谢谢

我也遇到了同样的问题,但我意识到这只发生在用户更改了他们的电子邮件之后(显然用户名不再等于电子邮件)

看一看PasswordSignInAsync的签名,第一个参数是UserName,但是VisualStudio项目模板中的默认代码拥有您和我都有的东西,电子邮件

更改:

var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
致:


我也有同样的问题,但我意识到只有在用户更改了他们的电子邮件(显然用户名不再等于电子邮件)后才会发生

看一看PasswordSignInAsync的签名,第一个参数是UserName,但是VisualStudio项目模板中的默认代码拥有您和我都有的东西,电子邮件

更改:

var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
致:

var result = await SignInManager.PasswordSignInAsync(user.UserName, model.Password, model.RememberMe, shouldLockout: false);