您使用的是EF嗎?如果是這樣,你不應該在你的edmx上添加AspNetRoles,AspNetUserClaims,AspNetUserLogins和AspNetUserRoles。
另外,我總是使用下面的「登錄」方法。如果我需要保留一些信息(比如userRole,userName等),我使用下面的Session。
public async Task<ActionResult> Login(LoginViewModel model)
{
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 user = await UserManager.FindAsync(model.Email, model.Password);
//var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
if (user != null)
{
string userRole = UserManager.GetRoles(user.Id).FirstOrDefault();
Session["userRole"] = userRole;
Session["userName"] = model.Email;
await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
return RedirectToAction("Index", "Home");
}
else
{
ModelState.AddModelError("", "Invalid username or password");
return View(model);
}
}
因此,你可以嘗試
await SignInManager.PasswordSignInAsync
或
await SignInManager.SignInAsync
我也收到了這個問題。我不認爲你在使用MySQL?你有沒有設法解決這個問題的底部? – Luke
我也有這個問題,我使用EF。但是我沒有將Pk從字符串覆蓋到Int – Zapnologica
如果將無效散列放在Password_Hash中,您將得到相同的錯誤 – user960567