コード例 #1
0
        /// <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());
        }