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; } }
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; } }
/// <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; } }
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; } }
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; } }
/// <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; } }
/// <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; } }
/// <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; } }
/// <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; } }
/// <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; } }
/// <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; } }
/// <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; } }
/// <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; } }