C# 如何从WebAPI更新AspNetUsers表中现有用户记录的密码
我是Web API的新手,在这里我正在使用基于令牌的身份验证。 我用AspNetUsers表完成了所有的登录和注册过程,除了更新密码功能 在这里,我通过传递新密码更新了HashedPassword字段。当我尝试获取特定用户的令牌时,它会返回一些与passwordHash格式相关的错误,因为它直接保存新密码而不使用hash 代码:C# 如何从WebAPI更新AspNetUsers表中现有用户记录的密码,c#,asp.net-web-api,asp.net-identity,C#,Asp.net Web Api,Asp.net Identity,我是Web API的新手,在这里我正在使用基于令牌的身份验证。 我用AspNetUsers表完成了所有的登录和注册过程,除了更新密码功能 在这里,我通过传递新密码更新了HashedPassword字段。当我尝试获取特定用户的令牌时,它会返回一些与passwordHash格式相关的错误,因为它直接保存新密码而不使用hash 代码: public string updateUserData(string mEmail,string mPassword) {
public string updateUserData(string mEmail,string mPassword)
{
if (ModelState.IsValid)
{
var userStore = new UserStore<ApplicationUser>(new ApplicationDbContext());
var manager = new UserManager<ApplicationUser>(userStore);
ApplicationUser AppModel = manager.FindByEmail(mEmail);
AppModel.PasswordHash = mPassword;
manager.Update(AppModel);
return "Success";
}
return "Update Failed";
}
public string updateUserData(string mEmail,string mPassword)
{
if(ModelState.IsValid)
{
var userStore=newuserstore(new ApplicationDbContext());
var-manager=新的UserManager(userStore);
ApplicationUser AppModel=manager.FindByEmail(mEmail);
AppModel.PasswordHash=mPassword;
manager.Update(AppModel);
返回“成功”;
}
返回“更新失败”;
}
有人能帮助我以正确的方式完成这项工作吗?如果我犯了任何愚蠢的错误,我会向你道歉。创建一个密码重置令牌,然后使用它来更改密码。例如:
var user = await manager.FindByIdAsync(id);
var token = await manager.GeneratePasswordResetTokenAsync(user);
var result = await manager.ResetPasswordAsync(user, token, "NewPassword");
检查这个答案