2016-11-07 2 views
0

"사용자를 찾을 수 없음"오류가 발생하는 다음 코드가 잘못되었습니다. 이 코드의 목적은 로그인 한 사용자가 암호를 변경할 수있게하는 것입니다. 당신이 사용하는 경우암호를 변경하는 동안 사용자를 찾을 수 없음

[Authorize] 
public partial class TestController : Controller 
{ 
    UserManager<IdentityUser> userManager = 
new UserManager<IdentityUser>(new UserStore<IdentityUser>()); 

    [HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult ChangePass(ChangePassTestVM model) 
    { 
     if (ModelState.IsValid) 
     { 
      try 
      { 
       var id = Membership.GetUser().ProviderUserKey.ToString(); 
       var result = MembershipUser. userManager.ChangePassword(id, model.OldPassword, model.NewPassword); 
      } 
      catch (Exception exc) 
      { 
       return View(model); 
      } 
     } 
     return View(model); 
    } 
} 
+0

그 줄에 중단 점을 넣은 후'Membership.GetUser(). ProviderUserKey.ToString();'의 값은 무엇입니까? – CodeNotFound

+0

@CodeNotFound 다음 형식이 예상대로 0bff27e9-cdc1-4784-g352-8fa8fa143d61 – usefulBee

+1

이상합니다. 따라서이 ID는 데이터베이스에 존재하므로 올바른 데이터베이스를 사용하고 있는지 확인하십시오. – CodeNotFound

답변

0

은 - 당신은 버전 1은 다음 "RemovePassword를 사용하여 시도 할 수있는 경우 Microsoft.Aspnet.Identity 버전 2는 암호를

string resetToken = await UserManager.GeneratePasswordResetTokenAsync(model.Id); 

IdentityResult passwordChangeResult = await UserManager.ResetPasswordAsync(model.Id, resetToken, model.NewPassword); 

를 재설정하는 몇 가지 좋은 방법이 있습니다 "및"userManager "인스턴스의"AddPassword "메소드를 사용합니다.

+0

이것은 단순 회원입니다 – usefulBee

관련 문제