public async Task <ActionResult> ForgotPassword(ForgotPasswordModel model) { var user = await _userManager.FindByEmailAsync(model.Email); if (user is null) { // Don't reveal that the user does not exist return(Ok()); } var token = await _userManager.GeneratePasswordResetTokenAsync(user); var uriBuilder = new UriBuilder(model.ReturnUrl); var query = HttpUtility.ParseQueryString(uriBuilder.Query); query["email"] = user.Email; query["token"] = token; uriBuilder.Query = query.ToString(); var callbackUrl = uriBuilder.ToString(); await _sendGridService.SendAuthEmail(model.CompanySlug, user.Email, "Reset Password", $"Please reset your password by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>."); return(Ok()); }