public ActionResult auth_login(string email, string password) { var user = _context.User.Where(i => i.Email == email).SingleOrDefault(); var returnData = ""; if (user != null) { if (password != null) { password = _CLSR.EncodeHMAC_SHA512(password); //Login success if (email.Equals(user.Email) && password.Equals(user.Password) && user.Wrong_Password_Count < 5 && user.User_Status == "Y" && user.User_isLock == "N") { returnData = "AUTH_PASS"; Login(email, password); } //Email==Email, Pass== Pass but Account locked else if (email.Equals(user.Email) && password.Equals(user.Password) && user.Wrong_Password_Count >= 5) { returnData = "AUTH_LOCK"; using (IDbContextTransaction dbTran = _context.Database.BeginTransaction()) { try { user.User_Status = "N"; user.User_isLock = "Y"; _context.Update(user); _context.SaveChanges(); dbTran.Commit(); } catch (Exception e) { TempData["msg"] = _CLSR.GetAlert("Error: " + e.Message); return(RedirectToAction("Index", "Home")); } } } //Email == email but Pass is not and password count 5+ else if (email.Equals(user.Email) && password != user.Password && user.Wrong_Password_Count >= 5) { returnData = "AUTH_LOCK"; } //Email != email, Pass != pass else { returnData = "AUTH_NOT"; using (IDbContextTransaction dbTran = _context.Database.BeginTransaction()) { try { user.Wrong_Password_Count = user.Wrong_Password_Count + 1; _context.Update(user); _context.SaveChanges(); dbTran.Commit(); } catch (Exception e) { TempData["msg"] = _CLSR.GetAlert("Error: " + e.Message); return(RedirectToAction("Index", "Home")); } } } } else { } } else { returnData = "USER_NOT_FOUND"; } return(Json(returnData)); }
public async Task <IActionResult> Create([Bind("User_ID,Role_ID,Email,Password,First_Name,Last_Name,Birthdate,Wrong_Password_Count,Last_Login,Last_Update,Gender,User_Status,User_isLock")] User user) { if (ModelState.IsValid) { int userID = 1; try { userID = _context.User.Max(p => p.User_ID) + 1; } catch { //ไม่เจอ ID สักอันแสดงว่า Table นี้ว่างอยู่ให้เริ่มที่ 1 userID = 1; } var checkUserIsAlready = _context.User.Where(i => i.Email == user.Email).Count(); //Email is already exist! if (checkUserIsAlready > 0) { TempData["msg"] = _CLSR.GetScriptAlertPopUp("Error", "Please contact Administrator", "", "E"); return(RedirectToAction("Create", "Users")); } else { if (user.Email != null && user.Password != null && user.First_Name != null) { //ควรเปิด Transaction ทุกครั้งที่มีการเปลี่ยนแปลงข้อมูลใน Table using (IDbContextTransaction dbTran = _context.Database.BeginTransaction()) { user.Password = _CLSR.EncodeHMAC_SHA512(user.Password); String cDate = _CLSR.GetDateNow(""); String cTime = _CLSR.GetTimeNow(""); //ROLE ID 1 คือ Admin //ROLE ID 2 คือ Normal User user.Role_ID = 2; user.Birthdate = _CLSR.ConvertDatePicker(user.Birthdate); user.Wrong_Password_Count = 0; user.Last_Login = cDate; user.Last_Update = cDate; user.User_Status = "Y"; user.User_isLock = "N"; _context.Add(user); await _context.SaveChangesAsync(); Trees basic_Tree = new Trees(); basic_Tree.User_ID = user.User_ID; basic_Tree.Tree_Level = 1; basic_Tree.Tree_EXP = 0; basic_Tree.Tree_Type_ID = 1; basic_Tree.Tree_Name = "Basic Tree"; basic_Tree.Tree_HP = 100; basic_Tree.Plant_Date = cDate; basic_Tree.Create_Date = cDate; basic_Tree.Update_Date = cDate; basic_Tree.Tree_Status = "S"; basic_Tree.Tree_isDead = "N"; _context.Add(basic_Tree); await _context.SaveChangesAsync(); //ถ้าบันทึกข้อมูลเสร็จ ให้ Commit เพื่อยืนยันการเซฟข้อมูล dbTran.Commit(); //ถ้าไม่สำเร็จให้ RollBack(); //try //{ // HCON.Login(user.Email, user.Password); //} //catch (Exception e) //{ // TempData["msg"] = "<script>alert('"+ e.Message +"')</script>"; // return RedirectToAction("Index", "Home"); //} TempData["msg"] = "<script>alert('Sign Up successfully')</script>"; //Temp Message เพื่อขึ้น Alert ป๊อปอัพแสดง //TempData["msg"] = _CLSR.GetScriptAlertPopUp("Success", "Register Successfully!", "", "S"); } } else { TempData["msg"] = _CLSR.GetScriptAlertPopUp("Error", "Please contact Administrator", "", "E"); return(RedirectToAction("Create", "Users")); } } } return(View(user)); }