Ejemplo n.º 1
0
        public HttpResponseMessage RecoverPassword([FromBody] string UserName)
        {
            try
            {
                using (var context = new OrgSys2017DataContext())
                {
                    var user = context.GetUserInfo(UserName).SingleOrDefault();
                    if (user != null)
                    {
                        if (user.Email == "")
                        {
                            return(Request.CreateResponse(HttpStatusCode.NotFound));
                        }
                        var token = MembershipProvider.createToken();
                        context.CreatePasswordRecoveryAttempt(token, user.ClientID, user.UserID);

                        using (var mail = new EmailController())
                        {
                            var origin = Request.Headers.GetValues("Origin").FirstOrDefault();
                            var email  = new
                            {
                                To      = user.Email,
                                From    = "*****@*****.**",
                                Subject = "OSI Portal - Recover Password",
                                Body    = $"Hello, </br></br>Please click <a href='https://umbrella02.orgsoln.com/Orgsys_Forms/ExternalPasswordConfig?recoverytoken={token}'>here</a> to create a new password.</br>"
                                          + "This link will expire in 2 hours.</br></br></br>Thank you"
                            };

                            mail.Post(null, JsonConvert.SerializeObject(new { emailData = email }));

                            return(Request.CreateResponse(HttpStatusCode.OK));
                        }
                    }
                    else
                    {
                        return(Request.CreateResponse(HttpStatusCode.NotFound));
                    }
                }
            }
            catch (Exception e)
            {
                ExceptionLog.LogException(e);
                return(Request.CreateResponse(HttpStatusCode.InternalServerError));
            }
        }