コード例 #1
0
        /// <summary>
        /// It will check whether the Provided Email id is present in the database or not.
        /// </summary>
        /// <param name="forgetPassword">Email-Id</param>
        /// <returns>It return the Response Model to be Send as Response</returns>
        public UserResponseModel ForgetPassword(ForgetPasswordRequest forgetPassword)
        {
            try
            {
                var data = context.UserDetails.FirstOrDefault(user => user.EmailId == forgetPassword.EmailId);

                if (data != null)
                {
                    var userData = new UserResponseModel()
                    {
                        UserId     = data.UserId,
                        FirstName  = data.FirstName,
                        LastName   = data.LastName,
                        EmailId    = data.EmailId,
                        ProfilePic = data.ProfilePic,
                        Type       = data.Type,
                        IsActive   = data.IsActive,
                        UserRole   = data.UserRole,
                        CreatedAt  = data.CreatedAt,
                        ModifiedAt = data.ModifiedAt
                    };
                    return(userData);
                }
                return(null);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
コード例 #2
0
        public async Task <BaseResponse <bool> > ForgotPassword(string email, string username)
        {
            var data = new BaseResponse <bool>();

            HttpClient client = new HttpClient();

            var uri     = new Uri(Constants.ForgotPassword);
            var request = new ForgetPasswordRequest();

            request.Email    = email;
            request.Username = username;
            var json    = JsonConvert.SerializeObject(request);
            var content = new StringContent(json, Encoding.UTF8, "application/json");

            try
            {
                HttpResponseMessage response = await client.PostAsync(uri, content);

                HttpStatusCode code = response.StatusCode;
                if (code == HttpStatusCode.OK)
                {
                    var result = await response.Content.ReadAsStringAsync();

                    data = JsonConvert.DeserializeObject <BaseResponse <bool> >(result);
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(data);
        }
コード例 #3
0
        public IActionResult ForgetPassword([FromBody] ForgetPasswordRequest forgetPassword)
        {
            try
            {
                if (!ValidateForgetPasswordRequest(forgetPassword))
                {
                    return(BadRequest(new { Message = "Please input the Data Properly." }));
                }

                UserResponseModel data = _userBusiness.ForgetPassword(forgetPassword);
                bool   status          = false;
                string message;
                string token;
                if (data == null)
                {
                    message = "No User Found with this Email-Id: " + forgetPassword.EmailId;
                    return(Ok(new { status, message }));
                }
                else
                {
                    token = GenerateToken(data, _forgetPassword);
                    MsmqSender.SendToMsmq(forgetPassword.EmailId, token);
                    status  = true;
                    message = "An Password Reset Link has been Send to the above Email";
                    return(Ok(new { status, message, token }));
                }
            }
            catch (Exception e)
            {
                return(BadRequest(new { e.Message }));
            }
        }
コード例 #4
0
        public ActionResult ForgetPassword([FromBody] ForgetPasswordRequest request)
        {
            var    control = userRepo.FirstOrDefaultBy(x => x.Username == request.Username && x.Email == request.Email);
            string Email   = request.Email;

            var response = new BaseResponse <bool>();

            if (control == null)
            {
                response.SetMessage("Sistemde kayıtlı böyle bir kullanıcı bulunamadı.");
                return(Ok(response));
            }
            var forgotPassword = new ForgatPassword();

            forgotPassword.UserID = control.Id;
            forgotPassword.Key    = Cryptography.GenerateKey(32);
            forgatPasswordRepo.Add(forgotPassword);

            var Recipients = new Dictionary <string, string>();

            Recipients.Add("recipient.Email", Email);
            Recipients.Add("recipient.FullName", control.FirstName + " " + control.LastName);
            Recipients.Add("recipient.IPAddress", accessor.HttpContext.Connection.RemoteIpAddress.ToString());
            Recipients.Add("recipient.Date", DateTime.Now.ToString("dd MMM yyyy, dddd HH:mm"));
            Recipients.Add("recipient.Link", $"{accessor.HttpContext.Request.Scheme}://{accessor.HttpContext.Request.Host}/Login/RePassword?q=" + forgotPassword.Key);

            mailManager.Send("Şifrenizi Sıfırlayın", Email, "forgot-password-en.html", Recipients, null);

            response.Message = "Email Gönderildi";

            return(Ok(response));
        }
コード例 #5
0
 public bool DeleteForgetPasswordRequest(ForgetPasswordRequest forgetPasswordRequest)
 {
     if (forgetPasswordRequest == null) return false;
     _unitOfWork.ForgetPasswordRequestRepository.Delete(forgetPasswordRequest);
     _unitOfWork.Save();
     return true;
 }
コード例 #6
0
        public ActionResult ForgetPassword([FromBody] ForgetPasswordRequest request)
        {
            var control  = userRepo.FirstOrDefaultBy(x => x.Username == request.Username && x.Email == request.Email);
            var response = new BaseResponse <bool>();

            if (control == null)
            {
                response.SetMessage("Sistemde kayıtlı böyle bir kullanıcı bulunamadı.");
                return(Ok(response));
            }

            Random rnd               = new Random();
            int    passwordKey       = rnd.Next(10000000, 99999999);
            string passwordKeyString = Convert.ToString(passwordKey);

            passwordKeyString = new Cryptography().EncryptString(passwordKeyString);

            var forgotPassword = new ForgatPassword();

            forgotPassword.UserID = control.Id;
            forgotPassword.Key    = passwordKeyString;
            forgatPasswordRepo.Add(forgotPassword);


            var resetLink = "http://localhost:5001/Login/RePassword?Code=" + HttpUtility.UrlEncode(passwordKeyString);


            MailManager.Send(resetLink, control.Email);

            return(Ok(response));
        }
コード例 #7
0
        public void Task_ForgetPassword_Null_Return_BadRequest()
        {
            var controller = new UserController(_userBusiness, _configuration, _hostingEnvironment);
            ForgetPasswordRequest forgetPassword = null;

            var data = controller.ForgetPassword(forgetPassword);

            Assert.IsType <BadRequestObjectResult>(data);
        }
コード例 #8
0
 public bool DeleteForgetPasswordRequest(ForgetPasswordRequest forgetPasswordRequest)
 {
     if (forgetPasswordRequest == null)
     {
         return(false);
     }
     _unitOfWork.ForgetPasswordRequestRepository.Delete(forgetPasswordRequest);
     _unitOfWork.Save();
     return(true);
 }
コード例 #9
0
        /// <summary>
        /// It Validate the ForgetPasswordRequest Model Before Sending it to Business Layer
        /// </summary>
        /// <param name="forgetPassword">ForgetPassword Data</param>
        /// <returns>Return True if Validation is successfull.</returns>
        private bool ValidateForgetPasswordRequest(ForgetPasswordRequest forgetPassword)
        {
            if (forgetPassword == null || string.IsNullOrWhiteSpace(forgetPassword.EmailId) ||
                !forgetPassword.EmailId.Contains('@') || !forgetPassword.EmailId.Contains('.'))
            {
                return(false);
            }

            return(true);
        }
コード例 #10
0
        public async Task <ConfirmMapResponse> ForgetPassword(ForgetPasswordRequest passwordRequest)
        {
            var httpResponse = await _httpService.Post <ForgetPasswordRequest, ConfirmMapResponse>(APIRoute.Account.ForgetPassword, passwordRequest);

            if (!httpResponse.Success)
            {
                throw new ApplicationException(await httpResponse.GetBody());
            }

            return(httpResponse.Response);
        }
コード例 #11
0
        public void Task_ForgetPassword_Email_Dot_Return_BadRequest()
        {
            var controller     = new UserController(_userBusiness, _configuration, _hostingEnvironment);
            var forgetPassword = new ForgetPasswordRequest
            {
                EmailId = "asdjnkmvn@gmailcom"
            };

            var data = controller.ForgetPassword(forgetPassword);

            Assert.IsType <BadRequestObjectResult>(data);
        }
コード例 #12
0
        public void Task_ForgetPassword_InValidEmailData_Return_NotFoundResult()
        {
            var controller     = new UserController(_userBusiness, _configuration, _hostingEnvironment);
            var forgetPassword = new ForgetPasswordRequest
            {
                EmailId = "*****@*****.**"
            };

            var data = controller.ForgetPassword(forgetPassword);

            Assert.IsType <NotFoundObjectResult>(data);
        }
コード例 #13
0
ファイル: AccountController.cs プロジェクト: nathnael/cats
        public ActionResult ForgetPassword(string key)
        {
            ForgetPasswordRequest req = _forgetPasswordRequestService.GetValidRequest(key);

            if (req != null)
            {
                ForgotPasswordModel model = new ForgotPasswordModel();
                model.UserProfilID = req.UserProfileID;
                return(View("ForgetPassword", model));
            }
            return(new EmptyResult());
        }
コード例 #14
0
        public async Task <IActionResult> ForgetPassword([FromBody] ForgetPasswordRequest forgetPasswordRequest)
        {
            if (!ModelState.IsValid)
            {
                return(await Task.FromResult <IActionResult>(BadRequest(ModelState)));
            }

            var inputDto = this.Mapper.Map <ForgetPasswordInputDto>(forgetPasswordRequest);

            await this.Mediator.Send(inputDto);

            return(await Task.FromResult <IActionResult>(Ok()));
        }
コード例 #15
0
        public async Task <IActionResult> ForgetPassword([FromBody] ForgetPasswordRequest passwordRequest)
        {
            var authResponse = await _account.ForgetPasswordAsync(passwordRequest);

            if (!authResponse.Success)
            {
                return(Ok(_mapper.Map <ConfirmMapResponse>(authResponse)));
            }

            var callbackUrl = Url.Action("ResetPassword", "Manage", new { UserId = authResponse.UserId, Code = authResponse.Code }, HttpContext.Request.Scheme);

            await _emailSender.SendEmailAsync(authResponse.Email, "ProjMAN - Confirm Your Email", "Please Confirm Your E-Mail by clicking this link: <a href=\"" + callbackUrl + "\">Click here </a>");

            return(Ok(_mapper.Map <ConfirmMapResponse>(authResponse)));
        }
コード例 #16
0
        public async Task <IActionResult> ForgetPassword(ForgetPasswordRequest request)
        {
            var response = await _authRepo.ForgetPassword(request.Email);

            if (response.Succeeded())
            {
                var url = Url.Action(nameof(ResetPassword), ControllerContext.ActionDescriptor.ControllerName,
                                     new { Token = response.Extra, Email = request.Email }
                                     , Request.Scheme);

                var message = new Message(new string[] { request.Email }, "Reset password email link", url);

                _emailService.SendEmail(message);
            }
            return(HandleServiceResponse(response));
        }
コード例 #17
0
 /// <summary>
 /// If User Forget their Password
 /// </summary>
 /// <param name="forgetPassword">Forget Password Model</param>
 /// <returns>It return Response Model if Successfull or else null</returns>
 public UserResponseModel ForgetPassword(ForgetPasswordRequest forgetPassword)
 {
     try
     {
         if (string.IsNullOrWhiteSpace(forgetPassword.EmailId))
         {
             return(null);
         }
         else
         {
             return(_userRepository.ForgetPassword(forgetPassword));
         }
     }
     catch (Exception e)
     {
         throw new Exception(e.Message);
     }
 }
コード例 #18
0
        public async Task <ConfirmResponse> ForgetPasswordAsync(ForgetPasswordRequest passwordRequest)
        {
            var user = await _userManager.FindByEmailAsync(passwordRequest.Email);

            if (user == null || !(await _userManager.IsEmailConfirmedAsync(user)))
            {
                return(new ConfirmResponse()
                {
                    Error = "It is Already Sent to your Email"
                });
            }

            var code = await _userManager.GeneratePasswordResetTokenAsync(user);

            return(new ConfirmResponse()
            {
                Success = true,
                Result = "Please Check Your Email",
                UserId = user.Id,
                Code = code,
                Email = passwordRequest.Email
            });
        }
コード例 #19
0
ファイル: AccountController.cs プロジェクト: nathnael/cats
        public ActionResult ForgetPasswordRequest(ForgotPasswordRequestModel model)
        {
            if (ModelState.IsValid)
            {
                UserProfile profile = _userProfileService.GetUser(model.UserName);
                if (profile != null && !profile.LockedInInd)
                {
                    ForgetPasswordRequest req = new ForgetPasswordRequest()
                    {
                        Completed     = false,
                        ExpieryDate   = DateTime.Now.AddMonths(2),
                        GeneratedDate = DateTime.Now,
                        RequestKey    = MD5Hashing.MD5Hash(Guid.NewGuid().ToString()),
                        UserProfileID = profile.UserProfileID
                    };
                    if (_forgetPasswordRequestService.AddForgetPasswordRequest(req))
                    {
                        string to      = profile.Email;
                        string subject = "Password Change Request";
                        string link    = Request.Url.Host + "/Account/ForgetPassword/?key=" + req.RequestKey;
                        string body    = string.Format(@"Dear {1}
                                                            <br /><br />
                                                        A password reset request has been submitted for your DRMFSS - CTS account. If you submitted this password reset request, please follow the following link. 
                                                        <br /><br />
                                                        <a href='{0}'>Please Follow this Link</a> <br />
                                                        <br /><br />
                                                        Please ignore this message if the password request was not submitted by you. This request will expire in 24 hours.
                                                        <br /><br />
                                                       Thank you,<br />
                                                       Administrator.
                                                        ", link, profile.GetFullName());

                        try
                        {
                            // Read the configuration table for smtp settings.

                            string from     = _settingService.GetSettingValue("SMTP_EMAIL_FROM");
                            string smtp     = _settingService.GetSettingValue("SMTP_ADDRESS");
                            int    port     = Convert.ToInt32(_settingService.GetSettingValue("SMTP_PORT"));
                            string userName = _settingService.GetSettingValue("SMTP_USER_NAME");
                            string password = _settingService.GetSettingValue("SMTP_PASSWORD");
                            // send the email using the utilty method in the shared dll.
                            SendMail mail = new SendMail(from, to, subject, body, null, true, smtp, userName, password, port);
                            return(RedirectToAction("ConfirmPasswordChange"));
                        }
                        catch (Exception e)
                        {
                            ViewBag.ErrorMessage = "The user name or email address you provided is not correct. Please try again.";
                        }
                    }
                    else
                    {
                        ViewBag.ErrorMessage = "The user name or email address you provided is not correct. Please try again.";
                    }
                }
                else
                {
                    ViewBag.ErrorMessage = "The user name or email address you provided is not correct. Please try again.";
                }
            }
            return(View("ForgetPasswordRequest", model));
        }
コード例 #20
0
 public bool EditForgetPasswordRequest(ForgetPasswordRequest forgetPasswordRequest)
 {
     _unitOfWork.ForgetPasswordRequestRepository.Edit(forgetPasswordRequest);
     _unitOfWork.Save();
     return true;
 }
コード例 #21
0
ファイル: AccountController.cs プロジェクト: nathnael/cats
        public ActionResult ForgetPasswordRequest(ForgetPasswordRequestModel model)
        {
            if (ModelState.IsValid)
            {
                var user = _userAccountService.GetUserDetail(model.UserName);
                if (user != null)
                {
                    var forgetPasswordRequest = new ForgetPasswordRequest()
                    {
                        Completed     = false,
                        ExpieryDate   = DateTime.Now.AddMonths(2),
                        GeneratedDate = DateTime.Now,

                        RequestKey    = MD5Hashing.MD5Hash(Guid.NewGuid().ToString()),
                        UserProfileID = user.UserProfileID

                                        //RequestKey = MD5Hashing.MD5Hash(Guid.NewGuid().ToString()),
                                        //UserAccountID = user.UserAccountId
                    };
                    if (_forgetPasswordRequestService.AddForgetPasswordRequest(forgetPasswordRequest))
                    {
                        string to          = user.Email;
                        string subject     = "Password Change Request";
                        var    callbackUrl = Url.Action("ForgetPassword", "Account", new { key = forgetPasswordRequest.RequestKey }, protocol: Request.Url.Scheme);

                        //string link = "localhost:" + Request.Url.Port + "/Account/ForgetPassword/?key=" + forgetPasswordRequest.RequestKey;
                        string body = string.Format(@"Dear {1}
                                                            <br /><br />
                                                        A password reset request has been submitted for your Email account. If you submitted this password reset request, please follow the following link. 
                                                        <br /><br />
                                                        <a href='{0}'>Please Follow this Link</a> <br />
                                                        <br /><br />
                                                        Please ignore this message if the password request was not submitted by you. This request will expire in 24 hours.
                                                        <br /><br />
                                                        Thank you,<br />
                                                        Administrator.
                                                        ", callbackUrl, user.UserName);
                        try
                        {
                            // Read the configuration table for smtp settings.

                            string from     = _settingService.GetSettingValue("SMTP_EMAIL_FROM");
                            string smtp     = _settingService.GetSettingValue("SMTP_ADDRESS");
                            int    port     = Convert.ToInt32(_settingService.GetSettingValue("SMTP_PORT"));
                            string userName = _settingService.GetSettingValue("SMTP_USER_NAME");
                            string password = _settingService.GetSettingValue("SMTP_PASSWORD");
                            // send the email using the utilty method in the shared dll.
                            Cats.Helpers.SendMail mail = new Helpers.SendMail(from, to, subject, body, null, true, smtp, userName, password, port);

                            ViewBag.ErrorMessage   = "Email has been sent to your email Address.";
                            TempData["ModelState"] = ViewBag.ErrorMessage;
                            return(RedirectToAction("ConfirmPasswordChange"));
                        }
                        catch (Exception e)
                        {
                            ViewBag.ErrorMessage = "The user name or email address you provided is not correct. Please try again.";
                        }
                    }

                    ViewBag.ErrorMessage = "Internal Error....";
                }

                ViewBag.ErrorMessage = "Invalid User Name " + model.UserName;
            }
            return(View());
        }
コード例 #22
0
 public async Task <IActionResult> ResetPassword(ForgetPasswordRequest request, CancellationToken ct)
 {
     return(Ok(await Mediator.Send(request, ct).ConfigureAwait(false)));
 }
コード例 #23
0
 public bool EditForgetPasswordRequest(ForgetPasswordRequest forgetPasswordRequest)
 {
     _unitOfWork.ForgetPasswordRequestRepository.Edit(forgetPasswordRequest);
     _unitOfWork.Save();
     return(true);
 }
コード例 #24
0
        public async Task <HttpResponseMessage> UserForgetPassword(ForgetPasswordRequest reqForgetPasswordRequest)
        {
            FResponse result = new FResponse();

            try
            {
                Int64 UserId = _objFriendFitDBEntity.Database.SqlQuery <Int64>("select Id from UserProfile where Email={0}", reqForgetPasswordRequest.Email).FirstOrDefault();

                if (UserId != 0)
                {
                    _objIUserSettings.UpdateToken(UserId);
                    string token = _objFriendFitDBEntity.Database.SqlQuery <string>("select TokenCode from UserToken where UserId={0}", UserId).FirstOrDefault();

                    string Email = _objFriendFitDBEntity.Database.SqlQuery <string>("Select Email from UserProfile Where Id=" + UserId).FirstOrDefault();


                    var SendingMessage = new MailMessage();
                    SendingMessage.To.Add(new MailAddress(Email));                   // replace with valid value
                    SendingMessage.From       = new MailAddress("*****@*****.**"); // replace with valid value
                    SendingMessage.Subject    = "Password Reset (noti.fit)";
                    SendingMessage.Body       = "Hi,<br/>You've requested a reset of your noti.fit password. If you didn't make the request, please ignore this email and your password won't be reset.<br/><br/> You can reset your password by visiting <br/> <br/><a href='" + ChangePasswordUrl + token + "'>" + ChangePasswordUrl + token + "</a> <br/><br/>This email will be valid for the next 12 hours.,<br/><br/><br/><br/>Kind regards<br/>The noti.fit team";
                    SendingMessage.IsBodyHtml = true;

                    using (var smtp = new SmtpClient())
                    {
                        var credential = new NetworkCredential
                        {
                            UserName = "******",  // replace with valid value
                            Password = "******" // replace with valid value
                        };
                        smtp.Credentials = credential;
                        smtp.Host        = "smtp.gmail.com";
                        smtp.Port        = 587;
                        smtp.EnableSsl   = true;
                        await smtp.SendMailAsync(SendingMessage);
                    }
                    //track sent Email time for expiry time :

                    EmailTimeSaveModel objreq = new EmailTimeSaveModel();
                    objreq.UserId       = UserId;
                    objreq.ResetMail    = true;
                    objreq.VerifyMail   = false;
                    objreq.MailSentTime = DateTime.Now.TimeOfDay;
                    EmailTrackerWrapper wrapper = new EmailTrackerWrapper();
                    wrapper.EmailTimeSave(objreq);

                    result.StatusCode = Convert.ToInt32(HttpStatusCode.OK);
                    result.Message    = "Please check your Email for further instructions";
                }
                else
                {
                    FileStream   fs  = new FileStream(System.Web.HttpContext.Current.Server.MapPath("~/Content/ErrorLog.txt"), FileMode.Append, FileAccess.Write);
                    StreamWriter swr = new StreamWriter(fs);
                    swr.Write("Enter ur Exception Here");
                    swr.Close();
                    result.StatusCode = Convert.ToInt32(HttpStatusCode.Unauthorized);
                    result.Message    = "This Mail Id is not registered";
                }
                var message = Request.CreateResponse(HttpStatusCode.Created, result);
                return(message);
            }
            catch (Exception ex)
            {
                result.StatusCode = Convert.ToInt32(HttpStatusCode.BadRequest);
                _response         = Request.CreateResponse(HttpStatusCode.InternalServerError, "Some error occurred");
            }
            return(_response);
        }