我有一个使用 Angular 7 和 ASP.net Core 2.2 构建的网站。我制作了标准的“EmailConfirmed”、“ResetPasswordRequest”和“ResetPasswordConfirmed”功能。所有这些都在 app.route.ts 中定义了它们的路由,如下所示:
{ path: 'email-confirmed', component: AccountEmailConfirmedComponent },
{ path: 'reset-password-request', component: AccountResetPasswordRequestComponent },
{ path: 'reset-password-confirmed', component: AccountResetPasswordConfirmedComponent }
现在在服务器端,我必须发送一封带有适当模板和链接的电子邮件。
我制作的代码运行良好,但回调 URL 必须与角度路由相对应,而这里不是这种情况。
我想知道为这种情况构建回调 url 的最佳方式
public async Task<IActionResult> ResetPasswordRequest(string email)
{
var user = await _userService._manager.FindByNameAsync(email);
if (user != null && await _userService._manager.IsEmailConfirmedAsync(user))
{
string token = await _userService._manager.GeneratePasswordResetTokenAsync(user);
// build from angular route dynamically....
string angularCallbackUrl = "https://localhost:44350/reset-password-confirmed";
string callbackUrl = this._urlHelper.Action("ResetPassword", "Account", new ConfirmTokenModel(user.Id, token), protocol: this.HttpContext.Request.Scheme);
await this._emailService.SendAsync(
to: user.Email,
subject: "Reset password",
body: "Reset your password by clicking this link: <a href=\"" + callbackUrl + "\">link</a>");
return new OkObjectResult("success");
}
return new ObjectResult("failed") { StatusCode = 403 };
}