解决方法
这应该为你做点窍门:
- // get user object from the storage
- var user = await userManager.FindByIdAsync(userId);
- // change username and email
- user.Username = "NewUsername";
- user.Email = "New@email.com";
- // Persiste the changes
- await userManager.UpdateAsync(user);
- // generage email confirmation code
- var emailConfirmationCode = await userManager.GenerateEmailConfirmationTokenAsync(user.Id);
- // generate url for page where you can confirm the email
- var callbackurl= "http://example.com/ConfirmEmail";
- // append userId and confirmation code as parameters to the url
- callbackurl += String.Format("?userId={0}&code={1}",user.Id,HttpUtility.UrlEncode(emailConfirmationCode));
- var htmlContent = String.Format(
- @"Thank you for updating your email. Please confirm the email by clicking this link:
- <br><a href='{0}'>Confirm new email</a>",callbackurl);
- // send email to the user with the confirmation link
- await userManager.SendEmailAsync(user.Id,subject: "Email confirmation",body: htmlContent);
- // then this is the action to confirm the email on the user
- // link in the email should be pointing here
- public async Task<ActionResult> ConfirmEmail(string userId,string code)
- {
- var confirmResult = await userManager.ConfirmEmailAsync(userId,code);
- return RedirectToAction("Index");
- }