Exemplo n.º 1
0
        //Lấy lại mật khẩu
        public ResponseInfo ForgotPassword(SendEMail email)
        {
            ResponseInfo result = new ResponseInfo();

            try
            {
                var    taikhoan = context.TaiKhoans.FirstOrDefault(x => x.Email == email.email && !x.DelFlag);
                string Username = taikhoan.Username;

                string         token   = Common.Common.GetToken(taikhoan.Id);
                TblTokenResset tokenLG = new TblTokenResset
                {
                    Id_TaiKhoan    = taikhoan.Id,
                    TokenReset     = token,
                    ThoiGianHetHan = DateTime.Now.AddHours(12)
                };
                context.ResetPassWords.Add(tokenLG);
                context.SaveChanges();
                token = BaoMat.Base64Encode(token);
                string Subject = "Password Reset Confirmation for " + Username;
                string body    = "<p>There was recently a request to change the password for your account. </p>" +
                                 "<p>If you requested this password change, please reset your password here: </p>" +
                                 "<p> https://truyenda.tk/forgot?token=" + token + "</p>" +
                                 "<p>If you did not make this request, you can ignore this message and your password will remain the same.</p>";
                SendMail.SendGird(email.email, body, Subject);
                var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.GuiEmailThanhCong);
                result.TypeMsgError = errorMsg.Type;
                result.MsgError     = errorMsg.Msg;
                return(result);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Exemplo n.º 2
0
        //Lấy lại mật khẩu
        public ResponseInfo ChangePassword(ChangePass data)
        {
            ResponseInfo result = new ResponseInfo();

            try
            {
                string         Token         = BaoMat.Base64Decode(data.tokenReset);
                TblTokenResset resetPassWord = context.ResetPassWords.FirstOrDefault(x => x.TokenReset == Token && !x.DelFlag);
                if (resetPassWord == null)
                {
                    result.Code = 400;
                    var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.ThayDoiMatKhauThatBai);
                    result.TypeMsgError = errorMsg.Type;
                    result.MsgError     = errorMsg.Msg;
                }
                else if (resetPassWord.ThoiGianHetHan < DateTime.Now)
                {
                    result.Code = 400;
                    var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.TokenResetHetHan);
                    result.TypeMsgError = errorMsg.Type;
                    result.MsgError     = errorMsg.Msg;
                }
                else
                {
                    string Hash_Pass = BaoMat.GetMD5(BaoMat.GetSimpleMD5(data.NewPass), context.TaiKhoans.Where(x => x.Id == resetPassWord.Id_TaiKhoan && !x.DelFlag).FirstOrDefault().salt_Pass);
                    //cập nhật mật khẩu
                    context.TaiKhoans.Where(x => x.Id == resetPassWord.Id_TaiKhoan && !x.DelFlag).Update(y => new TblTaiKhoan
                    {
                        hash_Pass = Hash_Pass
                    });
                    context.ResetPassWords.Where(x => x.TokenReset == Token).Delete();
                    context.ResetPassWords.Where(x => x.ThoiGianHetHan < DateTime.Now).Delete();
                    context.SaveChanges();
                    var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.ThayDoiMatKhauThanhCong);
                    result.TypeMsgError = errorMsg.Type;
                    result.MsgError     = errorMsg.Msg;
                    return(result);
                }
                return(result);
            }
            catch (Exception e)
            {
                throw e;
            }
        }