有谁知道如何让用户使用电子邮件确认更改使用ASP.NET身份的用户名/电子邮件?有很多关于如何更改密码的例子,但是我找不到任何内容。
解决方法
这应该为你做点窍门:
// 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"); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。