Identity UserManager 密码散列错误问题
Problem with Identity UserManager error on password hashing
当我使用此代码时:
var passwordHasher = new PasswordHasher();
string hashedPassword = passwordHasher.HashPassword(pp.Password);
User newUser = new User()
{
UserName = pp.NationalCode,
Pcode = pp.Pcode,
PasswordHash = hashedPassword,
};
var result = _UserManager.CreateAsync(newUser).Result;
结果会成功,但是如果我使用下面的代码
User newUser = new User()
{
UserName = pp.NationalCode,
Pcode = pp.Pcode,
};
var result = _UserManager.CreateAsync(newUser,pp.Pasword).Result;
结果将为假。
另一方面,由于密码不是由Identity Hash系统生成的,我不能在用户登录中使用它,因为(可能和肯定)算法不同。
我的登录密码是:
if (ModelState.IsValid)
{
var user = _UserManager.FindByNameAsync(lc.UserName).Result;
_SignInManager.SignOutAsync();
if (user != null)
{
var result =await _SignInManager.PasswordSignInAsync(user,lc.Password, lc.IsPersistent, false);
if (result.Succeeded)
{
TempData["LoggedUserCode"] = user.Pcode;
return RedirectToAction("Index", "Home");
}
}
ModelState.AddModelError("", "Invalid User or Password");
}
问题在高手朋友的帮助下解决了。在自定义用户 table 时,我错误地添加了一个密码字段,我将其删除并解决了添加新用户的问题。
此外,post 操作被定义为异步,我删除了异步并解决了登录问题。
当我使用此代码时:
var passwordHasher = new PasswordHasher();
string hashedPassword = passwordHasher.HashPassword(pp.Password);
User newUser = new User()
{
UserName = pp.NationalCode,
Pcode = pp.Pcode,
PasswordHash = hashedPassword,
};
var result = _UserManager.CreateAsync(newUser).Result;
结果会成功,但是如果我使用下面的代码
User newUser = new User()
{
UserName = pp.NationalCode,
Pcode = pp.Pcode,
};
var result = _UserManager.CreateAsync(newUser,pp.Pasword).Result;
结果将为假。
另一方面,由于密码不是由Identity Hash系统生成的,我不能在用户登录中使用它,因为(可能和肯定)算法不同。
我的登录密码是:
if (ModelState.IsValid)
{
var user = _UserManager.FindByNameAsync(lc.UserName).Result;
_SignInManager.SignOutAsync();
if (user != null)
{
var result =await _SignInManager.PasswordSignInAsync(user,lc.Password, lc.IsPersistent, false);
if (result.Succeeded)
{
TempData["LoggedUserCode"] = user.Pcode;
return RedirectToAction("Index", "Home");
}
}
ModelState.AddModelError("", "Invalid User or Password");
}
问题在高手朋友的帮助下解决了。在自定义用户 table 时,我错误地添加了一个密码字段,我将其删除并解决了添加新用户的问题。 此外,post 操作被定义为异步,我删除了异步并解决了登录问题。