/// <summary> /// Dieser Event Handler wird aufgerufen, sobald das "POST"-Event auslöst wird (hier durch Betätigung des "Senden"-Buttons).<para> /// Er verifiziert die E-Mail-Adresse und sendet im Erfolgsfall eine E-Mail mit einem Zurücksetzungslink.</para> /// </summary> /// <returns> /// Ein <see cref="IActionResult"/>, das bestimmt, wie nach Behandlung des Event vorgegangen werden soll. /// </returns> public async Task <IActionResult> OnPostAsync() { if (ModelState.IsValid) { IdentityUser user = await _userManager.FindByEmailAsync(Input.Email); if (user != null && await _userManager.IsEmailConfirmedAsync(user)) { string callbackUrl = Url.Page( "/Account/ResetPassword", pageHandler: null, values: new { code = await _userManager.GeneratePasswordResetTokenAsync(user) }, protocol: Request.Scheme); Program.SendMail( Input.Email, new Name(user.Email, user.GetRole()?.Name.Equals(Resources.Student) ?? false), "Passwort zurücksetzen", "Bitte setze dein Passwort zurück, indem du {0} klickst.", (callbackUrl, "hier")); } return(RedirectToPage("./ForgotPasswordConfirmation")); } return(Page()); }