[英]ASP.net Identity Framework - Resend Confirmation Email
我正在为我的 ASP.net 站点设置 Identity Framework (2?)。 我有确认电子邮件,但我不知道在哪里或如何允许用户请求重新发送确认电子邮件。
我在此找到了“重新发送电子邮件确认链接” 这一节,但这是为 MVC 编写的(我对此知之甚少)。
有人能指出我正确的方向或给我一些示例代码吗?
谢谢
我正在使用股票身份框架。
string callbackUrl = IdentityHelper.GetUserConfirmationRedirectUrl(code, user.Id, Request);
manager.SendEmail(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>.");
signInManager.SignIn(user, isPersistent: false, rememberBrowser: false);
嗯,结果证明这并不很痛苦。 我省略了在用户的电话号码字段中存储他们上次请求的日期时间的丑陋部分。 :) 我还没有学会如何将自定义字段添加到 aspNetUsers 表中。 使用 dateTime 我可以限制他们要求重新发送的频率......以防他们试图向其他人发送垃圾邮件。
private ApplicationUser _currentUser;
private ApplicationUserManager _manager;
protected ApplicationUserManager Manager
{
get { return _manager ?? (_manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>()); }
}
protected ApplicationUser CurrentUser
{
get { return _currentUser ?? (_currentUser = Manager.FindById(User.Identity.GetUserId())); }
}
protected void Page_Load(object sender, EventArgs e)
{
if (CurrentUser == null || !User.Identity.IsAuthenticated)
{
Response.Redirect("~/account/register.aspx");
}
else if (User.Identity.IsAuthenticated && CurrentUser.EmailConfirmed)
{
alreadyConfirmed.Visible = true;
}
else if (!minTimeElapsedSinceLastRequest())
{
NotEnoughTimeLiteral.Text = "A resend occurred on " + CurrentUser.PhoneNumber + ". Please wait longer before your next request";
notEnoughTimeFlag.Visible = true;
}
else
{
idResendButton.Enabled = true;
}
}
protected void ResendConfirmationEmailClick(object sender, EventArgs e)
{
string currentUserId = User.Identity.GetUserId();
// For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
string code = Manager.GenerateEmailConfirmationToken(currentUserId);
string callbackUrl = IdentityHelper.GetUserConfirmationRedirectUrl(code, currentUserId, Request);
Manager.SendEmail(currentUserId, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>.");
setUsersLastResendDateTime(CurrentUser);
IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);
}
再次发送确认电子邮件添加到身份框架ASP.NET核心2 *和3 *您应该通过净CLI或Visual Studio脚手架任所示的代码在这里。
这是在visual studio中的做法。
您可以在 Manage 控制器中使用SendVerificationEmail
。
有关更多信息,请查看此链接https://github.com/aspnet/AspNetCore/issues/5410
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.