Пример #1
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;
            }
        }
Пример #2
0
        /// <summary>
        /// Update thông tin cá nhân
        /// Author       :   HoangNM - 29/03/2019 - create
        /// </summary>
        /// <param name="account">
        /// thông tin mà người dùng muốn thay đổi
        /// </param>
        /// <returns>
        /// Thông báo
        /// </returns>

        public ResponseInfo UpdateAccount(UpdateAccount account)
        {
            DbContextTransaction transaction = context.Database.BeginTransaction();
            ResponseInfo         response    = new ResponseInfo();

            try
            {
                string token = HttpContext.Current.Request.Cookies["ToKen"].Value.Replace("%3d", "=");
                token = BaoMat.Base64Decode(token);
                TblToken TblToken = context.Tokens.FirstOrDefault(x => x.TokenTaiKhoan == token);

                if (account.New_Passord != "" && string.Compare(account.New_Passord, account.Confirm_Password) == 0)
                {
                    string Hash_Pass = BaoMat.GetMD5(BaoMat.GetSimpleMD5(account.New_Passord), context.TaiKhoans.Where(x => x.Id == TblToken.TaiKhoan.Id && !x.DelFlag).FirstOrDefault().salt_Pass);
                    //cập nhật mật khẩu
                    context.TaiKhoans.Where(x => x.Id == TblToken.TaiKhoan.Id && !x.DelFlag).Update(y => new TblTaiKhoan
                    {
                        hash_Pass = Hash_Pass
                    });
                }


                context.ThongTinNguoiDungs.Where(x => x.Id == TblToken.TaiKhoan.ThongTinNguoiDung.Id && !x.DelFlag).Update(x => new TblUser
                {
                    Ten      = account.Ten,
                    NgaySinh = account.NgaySinh,
                    GioiTinh = account.GioiTinh
                });
                context.SaveChanges();
                response.IsSuccess = true;
                transaction.Commit();

                var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.CapNhatThongTinThanhCong);
                response.TypeMsgError = errorMsg.Type;
                response.MsgError     = errorMsg.Msg;
            }
            catch (Exception e)
            {
                response.IsSuccess = false;
                transaction.Rollback();
                throw e;
            }

            return(response);
        }
Пример #3
0
        /// <summary>
        /// Tạo tài khoản cho người dùng dựa vào thông tin đã cung cấp.
        /// Author       :   HoangNM - 28/02/2019 - create
        /// </summary>
        /// <param name="newAccount">Thông tin tạo tài khoản của người dùng</param>
        /// <returns>Thông tin về việc tạo tài khoản thành công hay thất bại</returns>
        public ResponseInfo TaoAccount(NewAccount newAccount)
        {
            //DbContextTransaction transaction = context.Database.BeginTransaction();
            try
            {
                ResponseInfo result = new ResponseInfo();
                // Kiểm tra xem username đã tồn tại hay chưa
                TblTaiKhoan taiKhoan = context.TaiKhoans.FirstOrDefault(x => x.Username == newAccount.Username && !x.DelFlag);
                if (taiKhoan == null)
                {
                    // Kiểm tra xem email đã tồn tại hay chưa
                    taiKhoan = context.TaiKhoans.FirstOrDefault(x => x.Email == newAccount.Email && !x.DelFlag);
                    if (taiKhoan == null)
                    {
                        // Tạo user mới
                        TblThongTinNguoiDung user = new TblThongTinNguoiDung
                        {
                            Ten      = newAccount.Ten,
                            GioiTinh = newAccount.GioiTinh,
                            NgaySinh = newAccount.NgaySinh,
                        };
                        context.ThongTinNguoiDungs.Add(user);
                        context.SaveChanges();



                        string salt = BaoMat.GetSalt();

                        //// Tạo tài khoản đăng nhập cho user
                        taiKhoan = new TblTaiKhoan
                        {
                            Id_User      = user.Id,
                            Username     = newAccount.Username,
                            salt_Pass    = salt,
                            hash_Pass    = BaoMat.GetMD5(BaoMat.GetSimpleMD5(newAccount.Password), salt),
                            Email        = newAccount.Email,
                            Id_TrangThai = 1,
                            Id_NhomDich  = 1,
                            Id_Face      = "",
                            Id_Google    = "",
                            Id_PhanQuyen = 5
                        };



                        context.TaiKhoans.Add(taiKhoan);
                        // Lưu vào CSDL
                        context.SaveChanges();



                        result.Code      = 200;
                        result.IsSuccess = true;
                        result.IsValid   = true;

                        var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.TaoTaiKhoanThanhCong);
                        result.TypeMsgError = errorMsg.Type;
                        result.MsgError     = errorMsg.Msg;
                    }
                    else
                    {
                        result.Code = 400;
                        var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.EmailDaTonTai);
                        result.TypeMsgError = errorMsg.Type;
                        result.MsgError     = errorMsg.Msg;
                    }
                }
                else
                {
                    result.Code = 400;
                    var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.UserNameDaDung);
                    result.TypeMsgError = errorMsg.Type;
                    result.MsgError     = errorMsg.Msg;
                }
                //transaction.Commit();
                return(result);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Пример #4
0
        /// <summary>
        /// Kiểm tra thông tin tài khoản người dùng nhập vào có đúng hay không
        /// Author       :   HoangNM - 28/02/2019 - create
        /// </summary>
        /// <param name="account">Đối tượng chưa thông tin tài khoản</param>
        /// <returns>Đối tượng ResponseInfo chứa thông tin của việc kiểm tra</returns>
        public ResponseInfo CheckAccount(TaiKhoan account)
        {
            try
            {
                ResponseInfo result   = new ResponseInfo();
                TblTaiKhoan  taiKhoan = context.TaiKhoans.FirstOrDefault(x => x.Username == account.Username);

                if (taiKhoan == null)
                {
                    var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.KhongCoTaiKhoan);
                    result.Code         = 400;
                    result.TypeMsgError = errorMsg.Type;
                    result.MsgError     = errorMsg.Msg;
                }
                else if ((taiKhoan.hash_Pass) != BaoMat.GetMD5(BaoMat.GetSimpleMD5(account.Password), taiKhoan.salt_Pass))
                {
                    result.Code = 400;
                    var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.MatKhauSai);
                    result.TypeMsgError = errorMsg.Type;
                    result.MsgError     = errorMsg.Msg;
                }
                else
                {
                    //Chứa thông tin chuỗi token
                    string   token   = Common.Common.GetToken(taiKhoan.Id);
                    TblToken tokenLG = new TblToken
                    {
                        Id_TaiKhoan    = taiKhoan.Id,
                        TokenTaiKhoan  = token,
                        ThoiGianHetHan = DateTime.Now.AddHours(24)
                    };
                    context.Tokens.Add(tokenLG);
                    context.SaveChanges();
                    result.IsSuccess = true;
                    result.Data      = new
                    {
                        Profile = new Profile()
                        {
                            Id_TrangThai = taiKhoan.Id_TrangThai,
                            TenTrangThai = taiKhoan.TrangThaiTaiKhoan.TenTrangThai,
                            Id_NhomDich  = taiKhoan.Id_NhomDich,
                            TenNhomDich  = taiKhoan.NhomDich.TenNhomDich,
                            Username     = taiKhoan.Username,
                            Email        = taiKhoan.Email,
                            Id_Face      = taiKhoan.Id_Face,
                            Id_Google    = taiKhoan.Id_Google,
                            GioiTinh     = taiKhoan.ThongTinNguoiDung.GioiTinh,
                            Ten          = taiKhoan.ThongTinNguoiDung.Ten,
                            NgaySinh     = (DateTime)taiKhoan.ThongTinNguoiDung.NgaySinh,
                            NgayHetHan   = tokenLG.ThoiGianHetHan,
                            Permissions  = new QuyenProFile
                            {
                                TenvaiTro = taiKhoan.PhanQuyen.TenVaiTro,
                                Id_VaiTro = taiKhoan.PhanQuyen.Id
                            }
                        },
                        Token = BaoMat.Base64Encode(token)
                    };
                    result.ThongTinBoSung1 = BaoMat.Base64Encode(token);


                    var errorMsg = new GetErrorMsg().GetMsg((int)MessageEnum.MsgNO.DangNhapThanhCong);
                    result.TypeMsgError = errorMsg.Type;
                    result.MsgError     = errorMsg.Msg;
                }

                return(result);
            }
            catch (Exception e)
            {
                throw e;
            }
        }