public HttpResponseMessage AddEmail(ForgotPasswordRequest model) { HttpResponseMessage responseMessage = null; BaseResponse response = null; if (!ModelState.IsValid) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); //if email is NOT valid return error response } ApplicationUser user = UserService.GetUserByEmail(model.Email); //grabs user email if (user != null) { UserTokensAddRequest foo = new UserTokensAddRequest(); foo.UserName = user.UserName; foo.TokenType = 2; Guid tokenId = UserTokensService.Add(foo); SendConfirmationEmailRequest request = new SendConfirmationEmailRequest(); request.UserName = user.UserName; request.Email = user.Email; request.Token = tokenId; Task t = _messagingService.SendForgotPasswordEmail(request); //calling it to run } else { response = new ErrorResponse("I'm sorry, but your email can't be found, Please use correct Email"); responseMessage = Request.CreateResponse(HttpStatusCode.BadRequest, response); return responseMessage; } return Request.CreateResponse(user); }
public async Task <IActionResult> ForgotPassword(ForgotPasswordRequest model) { await _accountService.ForgotPassword(model, Request.Headers["orgin"]); return(Ok(new { message = "Check your email for instructions" })); }
public async Task <IActionResult> ResendVerificationEmail(ForgotPasswordRequest model) { await _accountService.ResendVerificationEmail(model); return(Ok(new { message = "Email sent, please check your email for verification instructions" })); }
/// <summary> /// Allows the user to reset their password using an asynchronous call. Should be used in /// conjunction with the ConfirmPasswordAsync method /// </summary> public void ForgotPasswordAsync(AsyncCallback callback = null) { ForgotPasswordRequest forgotPassRequest = CreateForgotPasswordRequest(); Provider.ForgotPasswordAsync(forgotPassRequest, r => callback?.Invoke(new AsyncResult(r.Exception))); }
public async Task <IActionResult> ForgotPassword(ForgotPasswordRequest model) { await _accountService.ForgotPassword(model, Request.Headers["origin"]); return(Ok()); }
public int ForgotPassword(ForgotPasswordRequest pForgotPasswordRequest) { IUserProfileRepository _IUserProfileRepository; _IUserProfileRepository = new UserProfileRepository(new WorkersInMotionDB()); IGlobalUserRepository _IGlobalUserRepository; _IGlobalUserRepository = new GlobalUserRepository(new WorkersInMotionDB()); string UserGUID = _IUserProfileRepository.GetUserIDFromEmail(pForgotPasswordRequest.Cred); GlobalUser globalUser = _IGlobalUserRepository.GetPasswordFromUserGUID(new Guid(UserGUID)); if (globalUser != null) { EmailManager(); //string url = AppDomain.CurrentDomain.BaseDirectory; //TextReader textreader = new StreamReader(url + "EmailTemplate.html"); //string content = textreader.ReadToEnd(); //content = content.Replace("$UserName$", globalUser.UserName); //content = content.Replace("$Password$", globalUser.Password); StringBuilder sbMailBody = new StringBuilder(); sbMailBody.Append("<html>"); sbMailBody.Append("<head></head>"); sbMailBody.Append("<body>"); sbMailBody.Append("<table cellspacing=\"2\" cellpadding=\"2\" border=\"0\" width=\"100%\">"); sbMailBody.Append("<tr>"); sbMailBody.Append("<td align=\"left\" width=\"300px\">"); sbMailBody.Append("Dear " + globalUser.UserName + ","); sbMailBody.Append("</td>"); sbMailBody.Append("</tr>"); sbMailBody.Append("<tr>"); sbMailBody.Append("<td align=\"left\" width=\"300px\">"); sbMailBody.Append("</td>"); sbMailBody.Append("</tr>"); sbMailBody.Append("<tr>"); sbMailBody.Append("<td align=\"left\" width=\"300px\">"); sbMailBody.Append("<b>User Name :</b>" + globalUser.UserName + ""); sbMailBody.Append("</td>"); sbMailBody.Append("</tr>"); sbMailBody.Append("<tr>"); sbMailBody.Append("<td align=\"left\" width=\"300px\">"); sbMailBody.Append("<b>Password :</b>" + globalUser.Password + ""); sbMailBody.Append("</td>"); sbMailBody.Append("</tr>"); sbMailBody.Append("<tr>"); sbMailBody.Append("<tr>"); sbMailBody.Append("<td align=\"left\" width=\"300px\">"); sbMailBody.Append("</td>"); sbMailBody.Append("</tr>"); sbMailBody.Append("<td align=\"left\" width=\"300px\">"); sbMailBody.Append("on WorkersInMotion Website"); sbMailBody.Append("</td>"); sbMailBody.Append("</tr>"); sbMailBody.Append("</table>"); sbMailBody.Append("</body>"); sbMailBody.Append("</html>"); sftMail lMail = new sftMail(pForgotPasswordRequest.Cred, m_cSMTPUserName); lMail.FromDisplayName = string.Empty; lMail.FromAddress = m_cSMTPUserName; lMail.ToDisplayName = string.Empty; lMail.IsMailBodyHTML = true; lMail.MailSubject = "Password Recovery"; lMail.MailBody = sbMailBody.ToString(); lMail.SmtpHost = m_cSMTPHost; if (!string.IsNullOrEmpty(m_cPortNo)) { lMail.PortNo = Convert.ToInt32(m_cPortNo); } else { lMail.PortNo = 25; } if (lMail.SendMail()) { return(1); } else { return(0); } } else { return(401); } }
public async Task <ActionResult> ForgotPassword([FromBody] ForgotPasswordRequest forgotPasswordRequest) { await UserService.SendForgotPasswordMail(forgotPasswordRequest.Email, forgotPasswordRequest.Lang); return(Ok()); }
public async Task <IActionResult> ForgotPassword([FromBody] ForgotPasswordRequest request) { ForgotPasswordResponse response = await _accountService.ForgotPasswordAsync(request); return(Result(response)); }
public int ForgotPassword(ForgotPasswordRequest pForgotPasswordRequest) { IUserProfileRepository _IUserProfileRepository; _IUserProfileRepository = new UserProfileRepository(new WorkersInMotionDB()); IGlobalUserRepository _IGlobalUserRepository; _IGlobalUserRepository = new GlobalUserRepository(new WorkersInMotionDB()); string UserGUID = _IUserProfileRepository.GetUserIDFromEmail(pForgotPasswordRequest.Cred); GlobalUser globalUser = _IGlobalUserRepository.GetPasswordFromUserGUID(new Guid(UserGUID)); if (globalUser != null) { EmailManager(); //string url = AppDomain.CurrentDomain.BaseDirectory; //TextReader textreader = new StreamReader(url + "EmailTemplate.html"); //string content = textreader.ReadToEnd(); //content = content.Replace("$UserName$", globalUser.UserName); //content = content.Replace("$Password$", globalUser.Password); StringBuilder sbMailBody = new StringBuilder(); sbMailBody.Append("<html>"); sbMailBody.Append("<head></head>"); sbMailBody.Append("<body>"); sbMailBody.Append("<table cellspacing=\"2\" cellpadding=\"2\" border=\"0\" width=\"100%\">"); sbMailBody.Append("<tr>"); sbMailBody.Append("<td align=\"left\" width=\"300px\">"); sbMailBody.Append("Dear " + globalUser.UserName + ","); sbMailBody.Append("</td>"); sbMailBody.Append("</tr>"); sbMailBody.Append("<tr>"); sbMailBody.Append("<td align=\"left\" width=\"300px\">"); sbMailBody.Append("</td>"); sbMailBody.Append("</tr>"); sbMailBody.Append("<tr>"); sbMailBody.Append("<td align=\"left\" width=\"300px\">"); sbMailBody.Append("<b>User Name :</b>" + globalUser.UserName + ""); sbMailBody.Append("</td>"); sbMailBody.Append("</tr>"); sbMailBody.Append("<tr>"); sbMailBody.Append("<td align=\"left\" width=\"300px\">"); sbMailBody.Append("<b>Password :</b>" + globalUser.Password + ""); sbMailBody.Append("</td>"); sbMailBody.Append("</tr>"); sbMailBody.Append("<tr>"); sbMailBody.Append("<tr>"); sbMailBody.Append("<td align=\"left\" width=\"300px\">"); sbMailBody.Append("</td>"); sbMailBody.Append("</tr>"); sbMailBody.Append("<td align=\"left\" width=\"300px\">"); sbMailBody.Append("on WorkersInMotion Website"); sbMailBody.Append("</td>"); sbMailBody.Append("</tr>"); sbMailBody.Append("</table>"); sbMailBody.Append("</body>"); sbMailBody.Append("</html>"); sftMail lMail = new sftMail(pForgotPasswordRequest.Cred, m_cSMTPUserName); lMail.FromDisplayName = string.Empty; lMail.FromAddress = m_cSMTPUserName; lMail.ToDisplayName = string.Empty; lMail.IsMailBodyHTML = true; lMail.MailSubject = "Password Recovery"; lMail.MailBody = sbMailBody.ToString(); lMail.SmtpHost = m_cSMTPHost; if (!string.IsNullOrEmpty(m_cPortNo)) { lMail.PortNo = Convert.ToInt32(m_cPortNo); } else { lMail.PortNo = 25; } if (lMail.SendMail()) { return 1; } else { return 0; } } else { return 401; } }
public async Task <IActionResult> ForgotPassword([FromBody] ForgotPasswordRequest request) { await _userService.ForgotPasswordAsync(request, Request.Headers["origin"]); return(Ok(new { message = "Please check your email for password reset instructions" })); }
public void OnGet() { FormData = new ForgotPasswordRequest(); }
public Result <ServiceResponse> ForgotPassword(ForgotPasswordRequest request) { return(this.UseConnection("Default", connection => { request.CheckNotNull(); if (string.IsNullOrEmpty(request.Email)) { throw new ArgumentNullException("email"); } var user = connection.TryFirst <UserRow>(UserRow.Fields.Email == request.Email); if (user == null) { throw new ValidationError("CantFindUserWithEmail", Texts.Validation.CantFindUserWithEmail); } byte[] bytes; using (var ms = new MemoryStream()) using (var bw = new BinaryWriter(ms)) { bw.Write(DateTime.UtcNow.AddHours(3).ToBinary()); bw.Write(user.UserId.Value); bw.Flush(); bytes = ms.ToArray(); } var token = Convert.ToBase64String(MachineKey.Protect(bytes, "ResetPassword")); var externalUrl = Config.Get <EnvironmentSettings>().SiteExternalUrl ?? Request.Url.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/"); var resetLink = UriHelper.Combine(externalUrl, "Account/ResetPassword?t="); resetLink = resetLink + Uri.EscapeDataString(token); var emailModel = new ResetPasswordEmailModel(); emailModel.Username = user.Username; emailModel.DisplayName = user.DisplayName; emailModel.ResetLink = resetLink; var emailSubject = Texts.Forms.Membership.ResetPassword.EmailSubject.ToString(); var emailBody = TemplateHelper.RenderTemplate( MVC.Views.Membership.Account.ResetPassword.AccountResetPasswordEmail, emailModel); var message = new MailMessage(); message.To.Add(user.Email); message.Subject = emailSubject; message.Body = emailBody; message.IsBodyHtml = true; var client = new SmtpClient(); if (client.DeliveryMethod == SmtpDeliveryMethod.SpecifiedPickupDirectory && string.IsNullOrEmpty(client.PickupDirectoryLocation)) { var pickupPath = Server.MapPath("~/App_Data"); pickupPath = Path.Combine(pickupPath, "Mail"); Directory.CreateDirectory(pickupPath); client.PickupDirectoryLocation = pickupPath; } client.Send(message); return new ServiceResponse(); })); }
public static void CopyToEntity(Driver driver, ForgotPasswordRequest request) { driver.MobileNumber = request.mobile_number; }
/// <inheritdoc/> public ClientResponse <ForgotPasswordResponse> ForgotPassword(ForgotPasswordRequest request) { return(client.ForgotPasswordAsync(request).GetAwaiter().GetResult()); }
public async Task <IActionResult> ForgotPasswordAsync(ForgotPasswordRequest request) { var origin = Request.Headers["origin"]; return(Ok(await _userService.ForgotPasswordAsync(request, origin))); }
public IActionResult ForgotPassword(ForgotPasswordRequest model) { _accountService.ForgotPassword(model, Request.Headers["origin"]); return(Ok(new { message = "Please check your email for password reset instructions" })); }
public NegotiatedContentResult <ForgotPasswordResponse> PostForgotPassword([FromBody] ForgotPasswordRequest request) { ForgotPasswordResponse resp = _userServices.ForgotPassword(request); return(Content(HttpStatusCode.OK, resp)); }
/// <summary> /// Allows the user to reset their password using an asynchronous call. Should be used in /// conjunction with the ConfirmPasswordAsync method /// </summary> public Task ForgotPasswordAsync() { ForgotPasswordRequest forgotPassRequest = CreateForgotPasswordRequest(); return(Provider.ForgotPasswordAsync(forgotPassRequest)); }
public Result<ServiceResponse> ForgotPassword(ForgotPasswordRequest request) { return this.UseConnection("Default", connection => { request.CheckNotNull(); if (string.IsNullOrEmpty(request.Email)) throw new ArgumentNullException("email"); var user = connection.TryFirst<UserRow>(UserRow.Fields.Email == request.Email); if (user == null) throw new ValidationError("CantFindUserWithEmail", Texts.Validation.CantFindUserWithEmail); byte[] bytes; using (var ms = new MemoryStream()) using (var bw = new BinaryWriter(ms)) { bw.Write(DateTime.UtcNow.AddHours(3).ToBinary()); bw.Write(user.UserId.Value); bw.Flush(); bytes = ms.ToArray(); } var token = Convert.ToBase64String(MachineKey.Protect(bytes, "ResetPassword")); var externalUrl = Config.Get<EnvironmentSettings>().SiteExternalUrl ?? Request.Url.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/"); var resetLink = UriHelper.Combine(externalUrl, "Account/ResetPassword?t="); resetLink = resetLink + Uri.EscapeDataString(token); var emailModel = new ResetPasswordEmailModel(); emailModel.Username = user.Username; emailModel.DisplayName = user.DisplayName; emailModel.ResetLink = resetLink; var emailSubject = Texts.Forms.Membership.ResetPassword.EmailSubject.ToString(); var emailBody = TemplateHelper.RenderTemplate( MVC.Views.Membership.Account.ResetPassword.AccountResetPasswordEmail, emailModel); var message = new MailMessage(); message.To.Add(user.Email); message.Subject = emailSubject; message.Body = emailBody; message.IsBodyHtml = true; var client = new SmtpClient(); if (client.DeliveryMethod == SmtpDeliveryMethod.SpecifiedPickupDirectory && string.IsNullOrEmpty(client.PickupDirectoryLocation)) { var pickupPath = Server.MapPath("~/App_Data"); pickupPath = Path.Combine(pickupPath, "Mail"); Directory.CreateDirectory(pickupPath); client.PickupDirectoryLocation = pickupPath; } client.Send(message); return new ServiceResponse(); }); }
public async Task <IResult> ForgotPasswordAsync(ForgotPasswordRequest model) { var response = await _httpClient.PostAsJsonAsync(Routes.UserEndpoint.ForgotPassword, model); return(await response.ToResult()); }