Asp.net mvc ASP.NET MVC 5-让管理员更改其他用户的密码。数据库中的密码已更改,但可以';t登录

Asp.net mvc ASP.NET MVC 5-让管理员更改其他用户的密码。数据库中的密码已更改,但可以';t登录,asp.net-mvc,asp.net-mvc-5,Asp.net Mvc,Asp.net Mvc 5,我被告知要使管理员有一个功能来更改其他用户的密码,而不知道他们的原始密码。我写了一段代码,成功地在数据库中更改和保存了密码,但当我尝试以那个用户的身份登录时,我无法做到 用户控制器: public ActionResult ChangePassword() { return View(); } [HttpPost] public ActionResult ChangePassword(int id, ViewModels.Chan

我被告知要使管理员有一个功能来更改其他用户的密码,而不知道他们的原始密码。我写了一段代码,成功地在数据库中更改和保存了密码,但当我尝试以那个用户的身份登录时,我无法做到

用户控制器:

        public ActionResult ChangePassword()
    {
        return View();
    }

    [HttpPost]
    public ActionResult ChangePassword(int id, ViewModels.ChangePasswordViewModel model)
    {
        if (!SessionControlService.CheckIsLoginStillTrue(_loginsService, HttpContext))
            return RedirectToAction("Login", "Account");

        if (!User.IsInAnyRoles("Admin", "PropertyManager"))
            return RedirectToAction("Error", "Errors",
                new { error = Facility.Web.Resources.Resources.ErrorNotHavePermission });

        var user = _userService.GetUser(id);
        if (user == null)
            return RedirectToAction("Error", "Errors",
                new { error = Facility.Web.Resources.Resources.ErrorURLNotExist });
        user.Password = model.NewPassword;
        _userService.UpdateUser(user);

        return RedirectToAction("Details", new { id = id });
    }
为什么我不能使用保存在数据库中的更改后的密码登录?
我如何才能做到这一点?

在ASP.NET MVC5中,密码是散列的。。。你不能像那样保存明文密码

您需要使用以下两种方法:

var manager = new ApplicationUserManager(...);
var token = manager.GeneratePasswordResetToken(userId)
manager.ResetPassword(userId, token, newPassword)
您也可以尝试
ApplicationUserManager.UpdatePassword(…)
,或
RemovePassword(…)
AddPassword(…)


ApplicationUserManager
通常位于ASP.NET MVC5的
IdentityConfig.cs
中,密码是散列的。。。你不能像那样保存明文密码

您需要使用以下两种方法:

var manager = new ApplicationUserManager(...);
var token = manager.GeneratePasswordResetToken(userId)
manager.ResetPassword(userId, token, newPassword)
您也可以尝试
ApplicationUserManager.UpdatePassword(…)
,或
RemovePassword(…)
AddPassword(…)


ApplicationUserManager
通常位于
IdentityConfig.cs

是否以明文形式存储密码?此外,请显示进行身份验证的代码。在任何情况下,密码都不应存储为纯文本。需要对它们进行哈希和盐析。您是否尝试使用旧密码登录?我们不可能回答此问题。我们不知道你们中的任何一个方法,比如
CheckIsLoginStillTrue()或
UpdateUser()user,会做什么,尽管很明显,你所做的一切都是糟糕的实践,你应该放弃它,去mvc网站,通过上的教程来理解basicslook,你,作为c#和mvc的新开发人员,不应靠近用户成员资格系统。你不知道该做什么,你只会在别人看到它的时候建造一些会倒塌并被黑客攻击的东西。请有经验的人处理。您是否将密码存储为明文?此外,请显示进行身份验证的代码。在任何情况下,密码都不应存储为纯文本。需要对它们进行哈希和盐析。您是否尝试使用旧密码登录?我们不可能回答此问题。我们不知道你们中的任何一个方法,比如
CheckIsLoginStillTrue()或
UpdateUser()user,会做什么,尽管很明显,你所做的一切都是糟糕的实践,你应该放弃它,去mvc网站,通过上的教程来理解basicslook,你,作为c#和mvc的新开发人员,不应靠近用户成员资格系统。你不知道该做什么,你只会在别人看到它的时候建造一些会倒塌并被黑客攻击的东西。找一个有经验的人来处理它。