ASPNET Identity 2.0 - UserManager.Update 不适用于某些用户

ASPNET Identity 2.0 - UserManager.Update not working on some users

我有一个简单的 webapi 端点,它只更新身份用户的名字和姓氏:

public async Task<IHttpActionResult> UpdateUser(UpdateUserBindingModel updateUserModel)
        {
            
            try
            {

                if (!ModelState.IsValid)
                {
                    return BadRequest(ModelState);
                }

                var user = this.AppUserManager.FindById(updateUserModel.Id);

                if (user != null)
                {
                    user.Email = updateUserModel.Email;
                    user.FirstName = updateUserModel.FirstName;
                    user.LastName = updateUserModel.LastName;

                    this.AppUserManager.Update(user);
                    return Ok("");
}
                else
                {
                    return BadRequest("ERROR001 on UpdateUser");
                }
            }
            catch (Exception e)
            {
                return BadRequest(e.Message);
            }

        }

我已经在调试中进行了检查,我可以向您保证执行对所有用户都运行良好,但是 对于其中一些,更新未反映到数据库数据中...

我也尝试检查 SQL PROFILER,对于那些用户,我找不到任何记录的 UPDATE 命令。

可能是什么问题? 第一次遇到这样的事情...

我找到问题了!!!

这很巧妙:在测试环境中,我已将 ASPNETUSERS table 的所有电子邮件地址设置为“myemail@gmail.com”以测试电子邮件通知。

这实际上使 aspnet 身份无效,结果是在调用 UserManager.Update(user) 时没有对数据库进行更新,也没有返回任何错误。

希望它能帮到你,我花了 4 小时调试这个问题