我正在使用 ASP.NET MVC5 和 Identity 2.0(测试版)。
用户可以更改用户名吗?
我正在尝试使用 UserManager.UpdateAsync 方法引发异常。
研究生,
弗兰。
我正在使用 ASP.NET MVC5 和 Identity 2.0(测试版)。
用户可以更改用户名吗?
我正在尝试使用 UserManager.UpdateAsync 方法引发异常。
研究生,
弗兰。
是的,可以使用 UpdateAsync 方法,但您需要确保同时更新电子邮件和用户名字段。
var user = userManager.FindById(userId);
user.Email = email;
user.UserName = email;
var updateResult = await userManager.UpdateAsync(user);
这种方法对我来说成功
这对我有用:
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");
}
也许它不是那么漂亮,但试试这个:
db.Database.ExecuteSqlCommand("update AspNetUsers set UserName=" + NewUserName + " where UserName = " + OldUserName);