C# 更改用户名会破坏ASP.NET标识

C# 更改用户名会破坏ASP.NET标识,c#,asp.net-mvc,asp.net-identity,C#,Asp.net Mvc,Asp.net Identity,我有以下我用来更改用户名 // POST: /Manage/ChangeUserName [HttpPost] [ValidateAntiForgeryToken] public async Task<ActionResult> ChangeUserName(ChangeUserNameViewModel model) { if (!ModelState.IsValid)

我有以下我用来更改用户名

// POST: /Manage/ChangeUserName
        [HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<ActionResult> ChangeUserName(ChangeUserNameViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return View(model);
            }
            var user = UserManager.FindById(User.Identity.GetUserId());
            user.UserName = model.NewUserName;
            var result = await UserManager.UpdateAsync(user);
            if (result.Succeeded)
            {
                return RedirectToAction("Index", new { Message = ManageMessageId.ChangeUserNameSuccess });
            }
            AddErrors(result);
            return View(model);
        }
仅返回
SignInStatus.Failure

没有发生其他错误。
你知道为什么会发生这种情况吗?

你有错误吗?或者只是找不到用户?您是否已确保所有姓名都已更新(例如,可能有另一个身份表包含电子邮件等)?@Johan无错误。正确的用户得到更新。只有存储电子邮件/用户名的
AspNetUsers
表AFAIK。嗯,更改后用户是否仍被确认/激活?是。用户未被停用或锁定。我唯一改变的是用户名出于兴趣,如果你重置IIS/完全关闭应用程序并重新启动它,它会起作用吗?我的想法是,它可能没有在仍然存在的环境中更新。(不相关的问题,但答案可能有用:)
 var result = await SignInManager.TwoFactorSignInAsync(model.Provider, model.Code, isPersistent: model.RememberMe, rememberBrowser: model.RememberBrowser);