创建自定义ChangePassword - .NET身份



在如何创建自己的changepassword上几乎没有帮助?挑战是passwordhashing。尝试了一些在堆栈上发现但无效的示例。

这是我的代码:

        var currentPassword = _userManager.PasswordHasher.HashPassword(changePassword.CurrentPassword);
        ApplicationUser user = (from x in _context.AspNetUsers
                                where x.Id == changePassword.UserId && x.PasswordHash == currentPassword
                                select new ApplicationUser()
                                {
                                    FirstName = x.FirstName,
                                    LastName = x.LastName,
                                    RoleId = x.RoleId,
                                    LocationId = x.LocationId,
                                    IsActive = x.IsActive,
                                    CreatedOn = x.CreatedOn,
                                    CreatedBy = x.CreatedBy,
                                    ModifiedOn = x.ModifiedOn,
                                    ModifiedBy = x.ModifiedBy
                                }).SingleOrDefault();  //_userManager.FindById(changePassword.UserId);
        if (user == null)
        {
            //does not exist
            return 0;
        }
        user.PasswordHash = _userManager.PasswordHasher.HashPassword(changePassword.NewPassword);
        var result = _userManager.Update(user);

好吧,我认为这个问题的格式不正确,但我猜对不起。

哈希是一种方式,因此,当用户第一次将其键入密码并存储在数据库中时。因此,当用户登录您时,哈希输入并将其与存储在数据库中的哈希值进行比较。

更改密码的工作完全相同。您要么执行一个原始功能,该功能检查用户是否键入现有的功能为旧功能,然后只需使用新密码更新。您也可以通过电子邮件执行此操作,但这不是您问的。

相关内容

  • 没有找到相关文章

最新更新