Получить пароль от пользователя с помощью UserManager
Я делаю сайт с MVC5 ASP.NET. Я использую класс реализации Identity Framework 2.0 со свойствами, такими как хэш пароля, имя пользователя, адрес электронной почты, адрес электронной почты и т. Д. Я использую userManager.ChangePassword(user.Id, Oldpassword, Newpassword); но я не могу понять, как мне получить пароль от пользователя в виде простого текста (строка)
[HttpPost]
public ActionResult ChangePassword(AspNetUsersViewModel userView)
{
UserManager<IdentityUser> userManager = new UserManager<IdentityUser>(new UserStore<IdentityUser>());
var result = userManager.ChangePassword(_User.Id, "123456789", userView.Password);
return RedirectToAction("Index", "ConfigUser");
}
Как и сейчас, у меня есть текущий пароль пользователя "123456789", чтобы проверить, работает ли он. Я надеюсь, что вы, ребята, можете помочь.
1 ответ
Добавьте ввод пароля в представление внутри тега формы
<input type="password" id= "userNewPassword" name="userNewPassword">
Передайте userNewPasswor как строку в контроллер после userView и передайте его UserManager
[HttpPost] public ActionResult ChangePassword( AspNetUsersViewModel userView, string userNewPassword){ UserManager<IdentityUser> userManager = new UserManager<IdentityUser>(new UserStore<IdentityUser>()); var result = userManager.ChangePassword(_User.Id, userNewPassword , userView.Password); return RedirectToAction("Index", "ConfigUser"); }
Примечание. Лучший способ - это изменить userView и добавить userNewPassword к модели.
Обновить:
в Visual Studio 2013, если вы использовали шаблон по умолчанию asp.net, вы найдете текущий класс
public class ChangePasswordBindingModel
{
[Required]
[DataType(DataType.Password)]
[Display(Name = "Current password")]
public string OldPassword { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "New password")]
public string NewPassword { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm new password")]
[Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
}