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);