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 操作被定义为异步,我删除了异步并解决了登录问题。