簡體   English   中英

如何從WebAPI更新AspNetUsers表中現有用戶記錄的密碼

[英]How to update password for the existing user record in AspNetUsers table from WebAPI

我是Web API的新手,在這里我正在基於令牌的身份驗證中工作。 除更新密碼功能外,我使用AspNetUsers表完成了所有登錄和注冊過程。

在這里,我通過傳遞新密碼來更新了HashedPassword字段。當我嘗試獲取特定用戶的令牌時,它會返回與passwordHash格式有關的一些錯誤,因為它直接保存了新密碼而沒有哈希值。

代碼:

  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";
        }

有人可以幫助我以適當的方式做到這一點。如果我犯了任何愚蠢的錯誤,我對此表示陌生,我為此感到抱歉。

創建一個密碼重置令牌,然后使用它來更改密碼。 例:

var user = await manager.FindByIdAsync(id);

var token = await manager.GeneratePasswordResetTokenAsync(user);

var result = await manager.ResetPasswordAsync(user, token, "NewPassword");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM