2012-03-30 4 views
-2

Ich kann mein Passwort nicht ändern, wenn ich meine Anwendung ausführe. Es hielt immer an der Validierungszusammenfassung fest und ich kann mein Kennwort nicht ändern. Gibt es etwas auf dem Code, der geändert werden muss oder Konfiguration benötigt wird? Dies ist der Fehler, den ich erhalte.Passwortänderung war nicht erfolgreich. Bitte korrigieren Sie die Fehler und versuchen Sie es erneut.

Die Passwortänderung war nicht erfolgreich. Bitte korrigieren Sie die Fehler und versuchen Sie es erneut. Das aktuelle Passwort ist falsch oder das neue Passwort ist ungültig.

Aber ich bin sicher, dass ich mein aktuelles Passwort richtig eintippe.

MODEL AccountModel.cs

using System; 
using System.Collections.Generic; 
using System.ComponentModel.DataAnnotations; 
using System.Globalization; 
using System.Web.Mvc; 
using System.Web.Security; 

namespace Customer.Models 
{  
    public class ChangePasswordModel 
    { 
     [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; } 
    } 
} 

-Controller

// GET: /Account/ChangePassword 
[Authorize] 
public ActionResult ChangePassword() 
{ 
    return View(); 
} 

// POST: /Account/Register 
[HttpPost] 
public ActionResult Register(RegisterModel model) 
{ 
    if (ModelState.IsValid) 
    { 
     // Attempt to register the user 
     //MembershipCreateStatus createStatus; 

     try 
     { 
      MembershipService.CreateUser(model.UserName, model.FullName, model.Password, model.Email); 

      //if (createStatus == MembershipCreateStatus.Success) 
      //{ 
       FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */); 
       return RedirectToAction("Index", "Home"); 
      //} 
     } 
     catch(ArgumentException ae) 
     { 
      ModelState.AddModelError("", ae.Message); 
     } 
    } 

    // If we got this far, something failed, redisplay form 
    return View(model); 
} 

// POST: /Account/ChangePassword 
[Authorize] 
[HttpPost] 
public ActionResult ChangePassword(ChangePasswordModel model) 
{ 
    if (ModelState.IsValid) 
    { 
     // ChangePassword will throw an exception rather 
     // than return false in certain failure scenarios. 
     bool changePasswordSucceeded; 

     try 
     { 
      MembershipUser currentUser = Membership.GetUser(User.Identity.Name, true); 
      changePasswordSucceeded = currentUser.ChangePassword(model.OldPassword, model.NewPassword); 
     } 
     catch (Exception) 
     { 
      changePasswordSucceeded = false; 
     } 

     if (changePasswordSucceeded) 
     { 
      return RedirectToAction("ChangePasswordSuccess"); 
     } 
     else 
     { 
      ModelState.AddModelError("", "The current password is incorrect or the new password is invalid."); 
     } 
    } 

    // If we got this far, something failed, redisplay form 
    return View(model); 
} 


// GET: /Account/ChangePasswordSuccess 
public ActionResult ChangePasswordSuccess() 
{ 
    return View(); 
} 
+0

Gibt es Ausnahmen? kommt das Modell als gültig zurück? –

+0

Es ist ungültig ich denke. –

+0

können Sie das überprüfen? –

Antwort

1

Die Validierung ganz gut funktioniert, warum Sie bekommen „Das aktuelle Passwort das ist falsch oder das neue Passwort ist ungültig." in deinem Fehlerbericht. Etwas geschieht in Ihrer Mitgliedschaft Anbieter, die Ihre Flagge verursacht nicht wahr zu sein ... debug in dieser Stelle

changePasswordSucceeded = currentUser.ChangePassword(model.OldPassword, model.NewPassword); 

Lassen Sie mich wissen, was Sie finden!

Verwandte Themen