Пример #1
0
        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);
        }
Пример #2
0
        public async Task <IActionResult> ForgotPassword(ForgotPasswordRequest model)
        {
            await _accountService.ForgotPassword(model, Request.Headers["orgin"]);

            return(Ok(new { message = "Check your email for instructions" }));
        }
Пример #3
0
        public async Task <IActionResult> ResendVerificationEmail(ForgotPasswordRequest model)
        {
            await _accountService.ResendVerificationEmail(model);

            return(Ok(new { message = "Email sent, please check your email for verification instructions" }));
        }
Пример #4
0
        /// <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)));
        }
Пример #5
0
        public async Task <IActionResult> ForgotPassword(ForgotPasswordRequest model)
        {
            await _accountService.ForgotPassword(model, Request.Headers["origin"]);

            return(Ok());
        }
Пример #6
0
        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);
            }
        }
Пример #7
0
        public async Task <ActionResult> ForgotPassword([FromBody] ForgotPasswordRequest forgotPasswordRequest)
        {
            await UserService.SendForgotPasswordMail(forgotPasswordRequest.Email, forgotPasswordRequest.Lang);

            return(Ok());
        }
Пример #8
0
        public async Task <IActionResult> ForgotPassword([FromBody] ForgotPasswordRequest request)
        {
            ForgotPasswordResponse response = await _accountService.ForgotPasswordAsync(request);

            return(Result(response));
        }
Пример #9
0
        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;
            }

        }
Пример #10
0
        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();
 }
Пример #12
0
        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();
            }));
        }
Пример #13
0
 public static void CopyToEntity(Driver driver, ForgotPasswordRequest request)
 {
     driver.MobileNumber = request.mobile_number;
 }
Пример #14
0
 /// <inheritdoc/>
 public ClientResponse <ForgotPasswordResponse> ForgotPassword(ForgotPasswordRequest request)
 {
     return(client.ForgotPasswordAsync(request).GetAwaiter().GetResult());
 }
Пример #15
0
        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" }));
 }
Пример #17
0
        public NegotiatedContentResult <ForgotPasswordResponse> PostForgotPassword([FromBody] ForgotPasswordRequest request)
        {
            ForgotPasswordResponse resp = _userServices.ForgotPassword(request);

            return(Content(HttpStatusCode.OK, resp));
        }
Пример #18
0
        /// <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();
            });
        }
Пример #20
0
        public async Task <IResult> ForgotPasswordAsync(ForgotPasswordRequest model)
        {
            var response = await _httpClient.PostAsJsonAsync(Routes.UserEndpoint.ForgotPassword, model);

            return(await response.ToResult());
        }