with users recuperar password net mvc forgot contraseña aspnet asp and c# passwords asp.net-mvc-5 reset-password usermanager

users - reset password c#



Cómo restablecer la contraseña con UserManager de ASP.NET MVC 5 (7)

Agregué esto a mi clase de UserManager:

public virtual async Task<IdentityResult> UpdatePassword(ApplicationUser user, string newPassword) { var passwordStore = Store as IUserPasswordStore<ApplicationUser, string>; if (passwordStore == null) throw new Exception("UserManager store does not implement IUserPasswordStore"); var result = await base.UpdatePassword(passwordStore, user, newPassword); if (result.Succeeded) result = await base.UpdateAsync(user); return result; }

Me pregunto si hay una forma de restablecer la contraseña con UserManager de ASP.NET MVC 5

Intenté esto con un usuario que ya tiene una contraseña pero no tiene éxito. ¿Cualquier pista?

IdentityResult result = UserManager.AddPassword(forgotPasswordEvent.UserId.ToString(), model.ConfirmPassword); if (result.Succeeded) { // } else { AddErrors(result); }




Prueba este código. Está funcionando perfectamente:

var userStore = new UserStore<IdentityUser>(); var userManager = new UserManager<IdentityUser>(userStore); string userName= UserName.Text; var user =userManager.FindByName(userName); if (user.PasswordHash != null ) { userManager.RemovePassword(user.Id); } userManager.AddPassword(user.Id, newpassword);


Supongo que esto es más nuevo, pero hay una API así en Identity 2.0:

IdentityResult result = await UserManager.ResetPasswordAsync(user.Id, model.Code, model.Password);

modelo.El código se genera de la siguiente manera, y debe enviarlo como un enlace en un correo electrónico para asegurarse de que el usuario que afirma querer cambiar la contraseña es aquel que posee la dirección de correo electrónico:

string code = await UserManager.GeneratePasswordResetTokenAsync(user.Id);


intente usar la tienda de usuario:

var user = UserManager.FindById(forgotPasswordEvent.UserId); UserStore<ApplicationUser> store = new UserStore<ApplicationUser>(); store.SetPasswordHashAsync(user, uManager.PasswordHasher.HashPassword(model.ConfirmPassword));

La IdentityMembership es genial, pero aún falta alguna implementación

ACTUALIZAR

Identity 2.0 ya está aquí y tiene muchas más características


var validPass= await userManager.PasswordValidator.ValidateAsync(txtPassword1.Text); if(validPass.Succeeded) { var user = userManager.FindByName(currentUser.LoginName); user.PasswordHash = userManager.PasswordHasher.HashPassword(txtPassword1.Text); var res= userManager.Update(user); if(res.Succeeded) { // change password has been succeeded } }