在MVC 5中更改用户名

时间:2014-02-13 08:25:57

标签: identity membership username asp.net-mvc-5.1

我正在使用ASP.NET MVC5和Identity 2.0(测试版)。

用户可以更改用户名吗?

我正在尝试使用UserManager.UpdateAsync方法抛出异常。

Regrads,

弗兰。

3 个答案:

答案 0 :(得分:9)

是的,可以使用UpdateAsync方法,但您需要确保更新电子邮件和用户名字段。

var user = userManager.FindById(userId);
user.Email = email;
user.UserName = email;

var updateResult = await userManager.UpdateAsync(user);

这个方法对我来说很成功

答案 1 :(得分:3)

这对我有用:

 public async Task<ActionResult> ChangeUsername(string value)
        {
            if (UserManager.Users.Where(x => x.UserName == value).FirstOrDefault() == null) //chk for dupes
            {
                var user = UserManager.FindById(User.Identity.GetUserId());
                user.UserName = value;
                var updateResult = await UserManager.UpdateAsync(user);
                store.Context.SaveChanges();

                await SignInAsync(user,true);//user is cached until logout so do this to clear cache                
                return Content("true");
            }
            throw new HttpException(500, "Please select a different username");
        }

答案 2 :(得分:-5)

也许它不是那么美丽,但试试这个:

db.Database.ExecuteSqlCommand("update AspNetUsers set UserName=" + NewUserName + " where UserName = " + OldUserName);
相关问题