2017-09-14 1 views
0

Also mache ich ein Backend-Admin-Dashboard, und ich möchte eine Funktion für aktuelle Benutzer hinzufügen, um ihre Passwörter ändern zu können, wenn sie eingeloggt sind ist mein relevanter Code für die Account Settings Seite, wo das Änderungspasswort stattfinden wird. Die Benutzerinformationen sind alle in einer Modell-Datenbank namens LoginDataModel Ich kann einfach nicht für das Leben von mir, wie der aktuelle angemeldete Benutzer in der Lage, sein/ihr eigenes Passwort zu ändern und dann loggen sie heraus zu bekommen Kann ich mich mit dem neuen Passwort einloggen? Ich habe sogar versucht mit dem Edit-Teil aus der UserManagement CRUD-Anwendung aber noch nichts zu machen.Ändern des aktuell angemeldeten Benutzerpassworts [MVC]

public class UserManagementController : Controller 
{ 
    private UserDatabaseEntities db = new UserDatabaseEntities(); 


    public ActionResult AccountSettings(int? id) 
    { 
     if (id == null) 
     { 
      return View(); 
     } 
     Login login = db.Logins.Find(id); 
     if (login == null) 
     { 
      return HttpNotFound(); 
     } 
     return View(login); 
    } 

    [HttpPost] 
    public ActionResult AccountSettings([Bind(Include = "Password")]Login login) 
    { 
     if (ModelState.IsValid) 
     { 
      User.Identity.GetUserId(); 
      db.Entry(login).State = EntityState.Modified; 
      db.SaveChanges(); 
      return RedirectToAction("Index"); 
     } 
     return View(login); 
    } 
} 


@using (Html.BeginForm()) 
{ 
    <div class="container col-sm-4 col-md-4 col-lg-4"> 
     <div class="form-group"> 
      <label for="AssemblyName">New Password :</label> 
      <div class="form-group" style="width: 300px;"> 
       <div> 
        @Html.EditorFor(model => model.Password, new { htmlAttributes = new { @class = "form-control", @placeholder = "New Password" } }) 
        @Html.ValidationMessageFor(model => model.Password, "", new { @class = "text-danger" }) 
       </div> 
      </div> 
     </div> 
     <button type="submit" class="btn btn-info" style="width: 200px; "><span class="glyphicon glyphicon-plus-sign"></span>Save Changes</button> 
     <a href="#" class="btn btn-danger" type="button" style="width: 100px;">Delete</a> 
    </div> 
} 

Hoffe, Sie können helfen!

+0

Verwenden Sie ASP.NET Identity? Oder ein anderer Authentifizierungs-/Autorisierungsanbieter? (Ich erstelle Ihre eigenen, Sie werden wahrscheinlich viele Sicherheitslücken hinterlassen: tun Sie das nicht.) – Richard

+0

@Richard Ich habe es in der Verwendung Bereich in meinem UserManagementController, aber ich weiß nicht, ob es eingerichtet oder konfiguriert ist richtig. Ich bin neu in MVC als Ganzes –

Antwort

0
If you are using asp identity and want to change password of user then first you need to create reset password token 

string userId = User.Identity.GetUserId(); 
string token = await UserManager.GeneratePasswordResetTokenAsync(userId); 

And then use that token to reset password 

var result = await UserManager.ResetPasswordAsync(userId, token, newPassword); 
Verwandte Themen