2016-11-07 12 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がデータベースに存在することを確認してください。正しいIDを使用しています。 – CodeNotFound

答えて

0

を使用している場合 - Microsoft.Aspnet.Identityバージョン2を、あなたがバージョン-1を持っているなら、あなたは「RemovePasswordを使用して試すことができますパスワード

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

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

をリセットするためにいくつか良い方法があります"、" userManager "インスタンスの" AddPassword "メソッドを使用します。

+0

これは単純なメンバーシップです – usefulBee

関連する問題