public HttpResponseMessage PasswordRecovery(PasswordRecoveryForm form) { var formValidation = form.Validate(); if (formValidation.IsValid) { try { // TODO: populate the recovery options based on the provided email form.CanAnswerSecurityQuestion = true; form.CanResetPassword = true; form.CanSendSmSCode = true; form.SecurityQuestion = "What is my dog's name?"; return(CreateSuccessResponse(new { success = true, results = form })); } catch (Exception ex) { return(CreateErrorResponse(ex)); } } // invalid parameters, generate response return(CreateInvalidResponse(formValidation)); }
public HttpResponseMessage RecoverPassword(PasswordRecoveryForm form) { var formValidation = form.Validate(); if (formValidation.IsValid) { try { // TODO: finish this section if (form.IsAnsweringSecurityQuestion) { } else if (form.IsResettingPassword) { var host = HttpContext.Current.Request.ServerVariables["HTTP_HOST"]; var token = AuthenticationSecurity.GeneratePasswordResetToken(form.Email); if (!string.IsNullOrWhiteSpace(host)) { // create the reset message StringBuilder sb = new StringBuilder(); var body1 = string.Format("You have requested your password to be reset. Follow the provided link:\n"); //var body2 = string.Format("http://{0}/api/account/incomingtoken?param={1}", host, token); var body2 = string.Format("http://{0}/#/reset?param={1}", host, token); sb.Append(body1); sb.AppendLine(); sb.AppendLine(); sb.Append(body2); // send the password reset message //Obsequy.Communication.Email.PasswordReset(form.Email, "BuildShark Password Reset", sb.ToString()); Obsequy.Communication.Mailer mailer = new Communication.Mailer(); mailer.DeliverMessage(form.Email, "Password Reset", sb.ToString()); } } else if (form.IsSendingSmSCode) { } // request successful return(CreateSuccessResponse(new { success = true })); } catch (Exception ex) { return(CreateErrorResponse(ex)); } } // invalid parameters, generate response return(CreateInvalidResponse(formValidation)); }
public void OnGet() { PasswordRecoveryForm = new PasswordRecoveryForm(); }