public async Task <ForgotPasswordResult> ForgotPassword(ForgotPasswordInputModel model) { _logger.LogInformation(GetLogMessage("Forgot Password:{0};"), model.Email); var user = await _userManager.FindByEmailAsync(model.Email); var result = new ForgotPasswordResult(); var code = await _userManager.GeneratePasswordResetTokenAsync(user); var callbackUrl = _urlHelper.Action( "ResetPassword", "Account", values: new { code = code }, protocol: _contextAccessor.HttpContext.Request.Scheme); if (code != null) { result.Succeeded = true; await Task.Run(() => { RaiseEvent(new ForgotPasswordEvent() { PersonId = user.Id, CallbackUrl = callbackUrl }); }); } return(result); }
// this defines a public method named ForgotPassword that returns // an instance of ForgotPasswordResult and takes one parameter of type // ForgotPasswordRequest. public bool ForgotPassword(AppUserForgotPasswordRequest req) { ForgotPasswordResult forgotPassword = new ForgotPasswordResult(); string ResetToken = null; string FirstName = null; dataProvider.ExecuteNonQuery( "AppUser_Validate", (parameters) => { parameters.AddWithValue("@Email", req.Email); parameters.Add("@FirstName", SqlDbType.NVarChar, 20).Direction = ParameterDirection.Output; parameters.Add("@ResetToken", SqlDbType.NVarChar, 50).Direction = ParameterDirection.Output; }, // the stuff above goes to the database, after the database code is finsihed, gets the data or nulls. (parameters) => //setting empty box to be filled when we get the data back from database. { FirstName = parameters["@FirstName"].Value as string; ResetToken = parameters["@ResetToken"].Value as string; }); if (ResetToken != null) { EmailSenderService.SendForgotPasswordEmail(FirstName, ResetToken, req.Email).Wait(); return(true); } else { return(false); } }
/// <inheritdoc /> public Task <ForgotPasswordResult> StartForgotPasswordProcess(User user, bool isInNetwork) { var resetUrl = LdapPlugin.Instance.Configuration.PasswordResetUrl; if (string.IsNullOrEmpty(resetUrl)) { throw new NotImplementedException(); } resetUrl = resetUrl .Replace("$userId", user.Id.ToString(), StringComparison.OrdinalIgnoreCase) .Replace("$userName", user.Username, StringComparison.OrdinalIgnoreCase); var result = new ForgotPasswordResult { Action = ForgotPasswordAction.PinCode, PinFile = resetUrl }; return(Task.FromResult(result)); }