コード例 #1
0
        public bool CheckRegister(string username, string tokenactive)
        {
            DbContextTransaction transaction = context.Database.BeginTransaction();

            try
            {
                TblAccount account = context.Account.FirstOrDefault(x => x.Username == username && !x.DelFlag && x.TokenActive == tokenactive && !x.IsActived);
                if (account != null)
                {
                    account.IsActived = true;
                    context.SaveChanges();
                    transaction.Commit();
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw e;
            }
        }
コード例 #2
0
        public ResponseInfo CheckAccountForgetPass(string email)
        {
            DbContextTransaction transaction = context.Database.BeginTransaction();

            try
            {
                ResponseInfo result   = new ResponseInfo();
                TblAccount   taiKhoan = context.Account.FirstOrDefault(x => x.Email == email && !x.DelFlag && x.IsActived);
                if (taiKhoan == null)
                {
                    result.Code  = 208;
                    result.MsgNo = 39;
                }
                else
                {
                    string newpass = Common.newPassword();
                    taiKhoan.Password = new TaoDataBase().GetMD5(new TaoDataBase().GetSimpleMD5(newpass));
                    context.SaveChanges();
                    transaction.Commit();
                    result.Code = 200;
                    string body = "<p> Chào mừng bạn đến với IPRO </p> <br>  <p>mật khẩu mới của bạn là : <b> " + newpass + " </b> </p>";

                    if (!EmailService.Send(email, "Lấy lại mật khẩu", body))
                    {
                        result.MsgNo = 38;
                    }
                }
                return(result);
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw e;
            }
        }
コード例 #3
0
        /// <summary>
        /// Sinh lại token và gửi lại Email theo email của người dùng nhập vàot.
        /// Author       :   QuyPN - 20/05/2018 - create
        /// </summary>
        /// <param name="Email">Email đã đăng ký do người dùng nhập vào</param>
        /// <returns>Thông tin về việc gửi mail</returns>
        public ResponseInfo SendEmail(string Email)
        {
            DbContextTransaction transaction = context.Database.BeginTransaction();

            try
            {
                ResponseInfo result  = new ResponseInfo();
                TblAccount   account = context.Account.FirstOrDefault(x => x.Email == Email && !x.DelFlag);
                if (account == null)
                {
                    result.Code  = 202;
                    result.MsgNo = (int)MsgNO.EmailKhongTonTai;
                }
                else
                {
                    TblCauHinh cauHinh = Common.LayCauHinh();
                    account.TokenActive = Common.GetToken(account.Id);
                    account.TimeOfToken = DateTime.Now.AddHours(cauHinh.ThoiGianTonTaiToken);
                    context.SaveChanges();
                    SendEmail(account);
                    result.MsgNo           = (int)MsgNO.DaGuiMailKichHoat;
                    result.ThongTinBoSung1 = BaoMat.Base64Encode(account.TokenActive);
                }
                transaction.Commit();
                return(result);
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw e;
            }
        }
コード例 #4
0
 public void SendEmailRegister(TblAccount account)
 {
     try
     {
         string lang    = Common.GetLang();
         string content = "<p>Xin chào tài khoản " + account.Username + ".Vui lòng kích vào link: <a href='https://localhost:44339/home/confirm?username="******"&tokenactive=" + account.TokenActive + "')>Tại đây</a></p>";
         EmailService.Send(account.Email, "Kích hoạt tài khoản", content);
     }
     catch (Exception e)
     {
         throw e;
     }
 }
コード例 #5
0
        public ResponseInfo TaoAccount(NewAccount newAccount)
        {
            DbContextTransaction transaction = context.Database.BeginTransaction();

            try
            {
                ResponseInfo result = new ResponseInfo();
                TblUser      user   = new TblUser
                {
                    Ho          = newAccount.Ho,
                    Ten         = newAccount.Ten,
                    Avatar      = "http://2.bp.blogspot.com/-Fl8NZJZFq6w/U02LSHQ7iII/AAAAAAAAAHg/zpzikQfynpM/s1600/WAPHAYVL.MOBI-CONDAU+(11).gif",
                    GioiTinh    = newAccount.GioiTinh,
                    NgaySinh    = newAccount.NgaySinh,
                    SoDienThoai = "0167229145",
                    CMND        = "192095142",
                    DiaChi      = "Hue"
                };
                TblAccount account = new TblAccount
                {
                    Username         = newAccount.Username,
                    Password         = Common.GetMD5(newAccount.Password),
                    Email            = newAccount.Email,
                    TokenActive      = Common.GetToken(0),
                    IsActived        = false,
                    SoLanDangNhapSai = 0,
                    KhoaTaiKhoanDen  = DateTime.Now
                };
                account.GroupOfAccount.Add(new TblGroupOfAccount
                {
                    IdGroup = 3
                });
                user.Account.Add(account);
                context.User.Add(user);
                context.SaveChanges();
                transaction.Commit();
                SendEmailRegister(account);
                return(result);
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw e;
            }
        }
コード例 #6
0
 /// <summary>
 /// Hàm gửi mail kích hoạt tài khoản theo email đã đăng ký
 /// Author       :   QuyPN - 20/05/2018 - create
 /// </summary>
 /// <param name="account">Tài khoản ddowwcj lưu trong DB</param>
 public void SendEmail(TblAccount account)
 {
     try
     {
         string     lang    = Common.GetLang();
         TblBieuMau bieuMau = context.BieuMau.FirstOrDefault(x => x.Id == (int)TemplateEnum.ActiveAccount && x.Lang == lang && !x.DelFlag);
         if (bieuMau != null)
         {
             bieuMau.NoiDung = bieuMau.NoiDung.Replace("#linkActive", Common.domain + @"kich-hoat-tai-khoan?token="
                                                       + BaoMat.Base64Encode(account.TokenActive)
                                                       + "&&username=" + account.Username);
             EmailService.Send(account.Email, bieuMau.TenBieuMau, bieuMau.NoiDung);
         }
     }
     catch (Exception e)
     {
         throw e;
     }
 }
コード例 #7
0
 /// <summary>
 /// Kiểm tra email hoặc username đã tồn tại hay chưa.
 /// Author       :   QuyPN - 20/05/2018 - create
 /// </summary>
 /// <param name="value">giá trị của email hoặc username cần kiểm tra</param>
 /// <param name="type">type = 1: kiểm tra usernme; type = 2: kiểm tra email</param>
 /// <returns>Nếu có tồn tại trả về true, ngược lại trả về false</returns>
 public bool CheckExistAccount(string value, string type)
 {
     try
     {
         TblAccount acount = context.Account.FirstOrDefault(x => ((type == "1" && x.Username == value) ||
                                                                  (type == "2" && x.Email == value)) && !x.DelFlag);
         if (acount != null)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
     catch (Exception e)
     {
         throw e;
     }
 }
コード例 #8
0
 /// <summary>
 /// Lấy Id Tài khoản cần active theo tokenAcitve.
 /// Author       :   QuyPN - 20/05/2018 - create
 /// </summary>
 /// <returns>Id của tài khoản lấy được, nếu lấy không có sẽ trả về 0</returns>
 public int GetIdAccountActive()
 {
     try
     {
         string tokenAccount = Common.GetCookie("tokenAccount");
         if (tokenAccount == "")
         {
             return(0);
         }
         TblAccount account = context.Account.FirstOrDefault(x => x.TokenActive == tokenAccount && !x.DelFlag);
         if (account == null)
         {
             return(0);
         }
         return(account.Id);
     }
     catch (Exception e)
     {
         throw e;
     }
 }
コード例 #9
0
        /// <summary>
        /// Kích hoạt tài khoản theo link đã gửi trong mail.
        /// Author       :   QuyPN - 20/05/2018 - create
        /// </summary>
        /// <param name="token">Token đang mã hóa Base64 được gửi đi trong mail</param>
        /// <param name="username">Tên đăng nhập mà user đăng ký được gửi kèm trong mail</param>
        /// <returns>Thông tin của việc kích hoạt tài khoản</returns>
        public ResponseInfo ActiveAccount(string token, string username)
        {
            DbContextTransaction transaction = context.Database.BeginTransaction();

            try
            {
                ResponseInfo result = new ResponseInfo();
                token = BaoMat.Base64Decode(token);
                TblAccount account = context.Account.FirstOrDefault(x => x.Username == username && x.TokenActive == token && !x.DelFlag);
                if (account == null)
                {
                    result.Code = 202;
                }
                else
                {
                    if (account.TimeOfToken.Value < DateTime.Now)
                    {
                        result.Code = 203;
                    }
                    else
                    {
                        account.IsActived     = true;
                        account.IsActiveEmail = true;
                        account.TokenActive   = "";
                        account.TimeOfToken   = null;
                        context.SaveChanges();
                    }
                }
                transaction.Commit();
                return(result);
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw e;
            }
        }
コード例 #10
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       :   QuyPN - 28/05/2018 - 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(Account account)
 {
     try
     {
         ResponseInfo result   = new ResponseInfo();
         TblCauHinh   cauHinh  = context.CauHinh.FirstOrDefault(x => x.Id == (int)OtherEnum.IdCauHinh);
         TblAccount   taiKhoan = context.Account.FirstOrDefault(x => x.Username == account.Username && !x.DelFlag);
         if (taiKhoan == null)
         {
             taiKhoan = context.Account.FirstOrDefault(x => x.Email == account.Username && !x.DelFlag);
         }
         if (taiKhoan == null)
         {
             result.MsgNo = (int)MsgNO.KhongCoTaiKhoan;
             result.Code  = 202;
         }
         else if (taiKhoan.KhoaTaiKhoanDen > DateTime.Now)
         {
             result.MsgNo           = (int)MsgNO.TaiKhoanBiKhoa;
             result.Code            = 203;
             result.ThongTinBoSung1 = taiKhoan.KhoaTaiKhoanDen.ToString("HH:mm dd/MM/yyyy");
         }
         else if (!taiKhoan.IsActived)
         {
             result.MsgNo = (int)MsgNO.ChuaKichHoatTaiKhoan;
             result.Code  = 204;
             new RegisterModel().SendEmail(taiKhoan);
             // Thiếu code gửi email
         }
         else if (taiKhoan.Password != BaoMat.GetMD5(account.Password))
         {
             taiKhoan.SoLanDangNhapSai += 1;
             result.MsgNo           = (int)MsgNO.MatKhauKhongDung;
             result.ThongTinBoSung1 = taiKhoan.SoLanDangNhapSai + "";
             result.ThongTinBoSung2 = cauHinh.SoLanChoPhepDangNhapSai + "";
             result.ThongTinBoSung3 = cauHinh.ThoiGianKhoa + "";
             if (taiKhoan.SoLanDangNhapSai == cauHinh.SoLanChoPhepDangNhapSai)
             {
                 taiKhoan.SoLanDangNhapSai = 0;
                 taiKhoan.KhoaTaiKhoanDen  = DateTime.Now.AddHours(cauHinh.ThoiGianKhoa);
                 result.MsgNo           = (int)MsgNO.SaiQuaSoLanChoPhep;
                 result.ThongTinBoSung1 = cauHinh.SoLanChoPhepDangNhapSai + "";
                 result.ThongTinBoSung2 = taiKhoan.KhoaTaiKhoanDen.ToLongTimeString();
             }
             context.SaveChanges();
             result.Code = 205;
         }
         else
         {
             taiKhoan.SoLanDangNhapSai = 0;
             //Chứa thông tin chuỗi token
             string token = Common.GetToken(taiKhoan.Id);
             context.TokenLogin.Add(new TblTokenLogin
             {
                 IdAccount      = taiKhoan.Id,
                 Token          = token,
                 ThoiGianTonTai = DateTime.Now.AddHours(cauHinh.ThoiGianTonTaiToken)
             });
             result.ThongTinBoSung1 = BaoMat.Base64Encode(token);
             context.SaveChanges();
         }
         return(result);
     }
     catch (Exception e)
     {
         throw e;
     }
 }
コード例 #11
0
        /// <summary>
        /// So khớp thông tin đăng nhập có thừ FB hoặc GG với thông tin tài khoản của hệ thống.
        /// Author       :   QuyPN - 30/05/2018 - create
        /// </summary>
        /// <param name="socialAccount">Thông tin cá nhân lấy được từ FB hoặc GG</param>
        /// <param name="type">type = 1: thông tin từ FB; type = 2: thông tin từ GG</param>
        /// <returns>Đối tượng chứ token login của tài khoản trong hệ thống</returns>
        public TblTokenLogin CheckSocialAccount(SocialAccount socialAccount, int type = (int)OtherEnum.TaiKhoanFB)
        {
            DbContextTransaction transaction = context.Database.BeginTransaction();

            try
            {
                if (socialAccount.Id != "")
                {
                    TblAccount account = context.Account.FirstOrDefault(x => x.Email == socialAccount.Email && !x.DelFlag);
                    if (account == null)
                    {
                        account = context.Account.FirstOrDefault(x => (
                                                                     (type == (int)OtherEnum.TaiKhoanFB && x.IdFacebook == socialAccount.Id) ||
                                                                     (type != (int)OtherEnum.TaiKhoanFB && x.IdGoogle == socialAccount.Id)) && !x.DelFlag);
                        if (account != null && socialAccount.Email != "")
                        {
                            account.Email = socialAccount.Email;
                        }
                    }
                    else
                    {
                        if (type == (int)OtherEnum.TaiKhoanFB)
                        {
                            account.IdFacebook = socialAccount.Id;
                        }
                        else
                        {
                            account.IdGoogle = socialAccount.Id;
                        }
                    }
                    if (account == null)
                    {
                        TblUser user = new TblUser
                        {
                            Ho          = socialAccount.FirstName,
                            Ten         = socialAccount.LastName,
                            Avatar      = "http://2.bp.blogspot.com/-Fl8NZJZFq6w/U02LSHQ7iII/AAAAAAAAAHg/zpzikQfynpM/s1600/WAPHAYVL.MOBI-CONDAU+(11).gif",
                            GioiTinh    = socialAccount.Gender,
                            NgaySinh    = socialAccount.Birthday,
                            SoDienThoai = socialAccount.PhoneNumber,
                            CMND        = "",
                            DiaChi      = ""
                        };
                        account = new TblAccount
                        {
                            Username         = "",
                            Password         = "",
                            Email            = socialAccount.Email,
                            TokenActive      = "",
                            IsActived        = true,
                            IsActiveEmail    = true,
                            SoLanDangNhapSai = 0,
                            KhoaTaiKhoanDen  = DateTime.Now
                        };
                        if (type == (int)OtherEnum.TaiKhoanFB)
                        {
                            account.IdFacebook = socialAccount.Id;
                        }
                        else
                        {
                            account.IdGoogle = socialAccount.Id;
                        }
                        account.GroupOfAccount.Add(new TblGroupOfAccount
                        {
                            IdGroup = (int)GroupAccount.User
                        });
                        user.Account.Add(account);
                        context.User.Add(user);
                    }
                    account.SoLanDangNhapSai = 0;
                    account.IsActived        = true;
                    TblCauHinh    cauHinh    = context.CauHinh.FirstOrDefault(x => x.Id == (int)OtherEnum.IdCauHinh);
                    TblTokenLogin tokenLogin = new TblTokenLogin
                    {
                        Token          = Common.GetToken(account.Id),
                        ThoiGianTonTai = DateTime.Now.AddHours(cauHinh.ThoiGianTonTaiToken)
                    };
                    account.TokenLogin.Add(tokenLogin);
                    context.SaveChanges();
                    transaction.Commit();
                    return(tokenLogin);
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw e;
            }
        }
コード例 #12
0
        /// <summary>
        /// Tạo tài khoản cho người dùng dựa vào thông tin đã cung cấp, sau đó gửi mail kích hoạt tài khoản.
        /// Author       :   QuyPN - 20/05/2018 - 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();
                TblCauHinh   cauHinh = Common.LayCauHinh();
                // Kiểm tra xem username đã tồn tại hay chưa
                TblAccount account = context.Account.FirstOrDefault(x => x.Username == newAccount.Username && !x.DelFlag);
                if (account == null)
                {
                    // Kiểm tra xem email đã tồn tại hay chưa
                    account = context.Account.FirstOrDefault(x => x.Email == newAccount.Email && !x.DelFlag);
                    if (account == null)
                    {
                        // Tạo user mới
                        TblUser user = new TblUser
                        {
                            Ho          = newAccount.Ho,
                            Ten         = newAccount.Ten,
                            Avatar      = Common.defaultAvata,
                            GioiTinh    = newAccount.GioiTinh,
                            NgaySinh    = newAccount.NgaySinh,
                            SoDienThoai = "",
                            CMND        = "",
                            DiaChi      = ""
                        };
                        // Tạo tài khoản đăng nhập cho user
                        account = new TblAccount
                        {
                            Username         = newAccount.Username,
                            Password         = BaoMat.GetMD5(newAccount.Password),
                            Email            = newAccount.Email,
                            TokenActive      = Common.GetToken(newAccount.Username),
                            IsActived        = false,
                            IsActiveEmail    = false,
                            TimeOfToken      = DateTime.Now.AddHours(cauHinh.ThoiGianTonTaiToken),
                            SoLanDangNhapSai = 0,
                            KhoaTaiKhoanDen  = DateTime.Now
                        };
                        // Cho tài khoản thuộc vào 1 group
                        account.GroupOfAccount.Add(new TblGroupOfAccount
                        {
                            IdGroup = (int)GroupAccount.User
                        });
                        user.Account.Add(account);
                        context.User.Add(user);
                        // Lưu vào CSDL
                        context.SaveChanges();
                        // Tiến hành gửi mail
                        SendEmail(account);
                        result.ThongTinBoSung1 = BaoMat.Base64Encode(account.TokenActive);
                    }
                    else
                    {
                        result.Code  = 202;
                        result.MsgNo = 37;
                    }
                }
                else
                {
                    result.Code  = 202;
                    result.MsgNo = 36;
                }
                transaction.Commit();
                return(result);
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw e;
            }
        }
コード例 #13
0
 /// <summary>
 /// Kiểm tra tài khoản này có được đăng nhập hay không
 /// Author:     HangNTD - 29/05/2018 - create
 /// </summary>
 /// <param name="account">Tài khoản cần kiểm tra của người dùng</param>
 /// <returns>Dữ liệu sau khi kiểm tra, nếu thành công thì trả về những thông tin cần thiết</returns>
 public ResponseInfo CheckAccount(Account account)
 {
     try
     {
         ResponseInfo result   = new ResponseInfo();
         TblAccount   taiKhoan = context.Account.FirstOrDefault(x => x.Username == account.Username && !x.DelFlag);
         if (taiKhoan == null)
         {
             taiKhoan = context.Account.FirstOrDefault(x => x.Email == account.Username && !x.DelFlag);
         }
         if (taiKhoan == null)
         {
             result.Code  = 202;
             result.MsgNo = 28;
         }
         else
         {
             if (taiKhoan.KhoaTaiKhoanDen > DateTime.Now)
             {
                 result.Code            = 203;
                 result.MsgNo           = 29;
                 result.ThongTinBoSung1 = taiKhoan.KhoaTaiKhoanDen.ToString("HH:mm dd/MM/yyyy");
             }
             else
             {
                 if (!taiKhoan.IsActived)
                 {
                     result.MsgNo = 30;
                     result.Code  = 204;
                     //Thiếu code gửi mail
                 }
                 else
                 {
                     if (taiKhoan.Password != Common.GetMD5(account.Password))
                     {
                         taiKhoan.SoLanDangNhapSai += 1;
                         result.ThongTinBoSung1     = taiKhoan.SoLanDangNhapSai + "";
                         result.MsgNo = 31;
                         if (taiKhoan.SoLanDangNhapSai == 5)
                         {
                             taiKhoan.SoLanDangNhapSai = 0;
                             taiKhoan.KhoaTaiKhoanDen  = DateTime.Now.AddHours(1);
                             result.MsgNo           = 32;
                             result.ThongTinBoSung1 = taiKhoan.KhoaTaiKhoanDen.ToString("HH:mm dd/MM/yyyy");
                         }
                         context.SaveChanges();
                         result.Code = 205;
                     }
                     else
                     {
                         taiKhoan.SoLanDangNhapSai = 0;
                         result.ThongTinBoSung1    = Common.GetToken(taiKhoan.Id);
                         context.TokenLogin.Add(new TblTokenLogin
                         {
                             IdAccount      = taiKhoan.Id,
                             Token          = result.ThongTinBoSung1,
                             ThoiGianTonTai = DateTime.Now.AddDays(1)
                         });
                         context.SaveChanges();
                     }
                 }
             }
         }
         return(result);
     }
     catch (Exception e)
     {
         throw e;
     }
 }