导致它产生“User Not Found”错误的以下代码有什么问题。该代码的目的是允许登录用户更改其密码。
[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 :(得分:0)
如果您使用的是Microsoft.Aspnet.Identity版本2,那么有一些更好的方法可以重置密码
string resetToken = await UserManager.GeneratePasswordResetTokenAsync(model.Id);
IdentityResult passwordChangeResult = await UserManager.ResetPasswordAsync(model.Id, resetToken, model.NewPassword);
如果您使用的是版本1,则可以尝试使用&#34; RemovePassword&#34;和&#34; AddPassword&#34; &#34; userManager&#34;的方法实例