public CheckUserAccountModel CheckUserAccount(string UserName, string Password) { CheckUserAccountModel data = new CheckUserAccountModel(); //int fildLogIn =Convert.ToInt32(_context.SystemSettings.Where(x => x.Name == "FildLogInNumber").FirstOrDefault().Value); var user = _context.Users.Where(x => x.Email.ToLower() == UserName.ToLower() && x.IsDeleted != true).Include(f => f.fk_UserRoleMap).ThenInclude(g => g.UserRole).ThenInclude(p => p.fk_UserRolePermMap).ThenInclude(h => h.Permission).FirstOrDefault(); if (user != null) { using (var algorithm = MD5.Create()) //or MD5 SHA256 etc. { var hashedBytes = algorithm.ComputeHash(Encoding.UTF8.GetBytes(Password)); Password = BitConverter.ToString(hashedBytes).Replace("-", "").ToLower(); } if (user.Password == Password) { //user.FildLogIn = 0; _context.Update(user); _context.SaveChanges(); data.user = _mapper.Map <User, UserViewModel>(user); } else { data.user = null; data.ErrorMessage = "Admin.Please wait for account activation"; } } else { data.user = null; data.ErrorMessage = "Admin.UserNotFound"; } return(data); }
public IActionResult UserLogin([FromBody] UserLoginView model) { this.ViewData["ReturnUrl"] = model.returnUrl; User currentUser = null; SwalMessage swal = new SwalMessage(); CheckUserAccountModel data = _userRepository.CheckUserAccount(model.Email, model.Password); currentUser = data.user != null?_userRepository.GetById(data.user.Id) : null; UserViewModel _UserModel = _mapper.Map <User, UserViewModel>(currentUser); if (currentUser != null) { if (currentUser.Activation == true) { var userrole = _mapper.Map <User, UserViewModel>(currentUser); if (userrole.UserRoleName.FirstOrDefault() == "Register User") { var claims = new List <Claim> { new Claim("UserId", currentUser.Id.ToString()), new Claim("CustomCache", "0") }; ClaimsIdentity userIdentity = new ClaimsIdentity(claims, "login"); ClaimsPrincipal principal = new ClaimsPrincipal(userIdentity); HttpContext.SignInAsync(principal); HttpContext.User = principal; _UserModel = _mapper.Map <User, UserViewModel>(currentUser); } else if (userrole.UserRoleName.FirstOrDefault() == UserRoleName.TicketingUser) { var claims = new List <Claim> { new Claim("UserId", currentUser.Id.ToString()), new Claim("CustomCache", "0") }; ClaimsIdentity userIdentity = new ClaimsIdentity(claims, "login"); ClaimsPrincipal principal = new ClaimsPrincipal(userIdentity); HttpContext.SignInAsync(principal); HttpContext.User = principal; _UserModel = _mapper.Map <User, UserViewModel>(currentUser); } else { swal.MessageType = false; swal.Header = _localization.GetString("web.Failed"); swal.Message = _localization.GetString("web.Go to Admin Login"); swal.SwalType = "error"; return(Json(swal)); } } else { swal.MessageType = false; swal.Header = _localization.GetString("web.Failed"); swal.Message = _localization.GetString("web.InactiveAccount"); swal.SwalType = "error"; return(Json(swal)); } } else { ////ModelState.AddModelError("Login Failed.Please enter correct credentials") //ModelState.AddModelError("", data.ErrorMessage); swal.MessageType = false; swal.Header = _localization.GetString("web.Failed"); swal.Message = _localization.GetString("web.Incorrect credentials"); swal.SwalType = "error"; return(Json(swal)); } if (_UserModel != null) { if (_UserModel.Id > 0) { if (_UserModel.UserRoleName.FirstOrDefault() == UserRoleName.User) { if (!string.IsNullOrEmpty(model.returnUrl)) { if (Url.IsLocalUrl(model.returnUrl)) { swal.Url = model.returnUrl; swal.MessageType = true; return(Json(swal)); } } // return Redirect("/" + model.returnUrl); } else if (_UserModel.UserRoleName.FirstOrDefault() == UserRoleName.TicketingUser) { if (!string.IsNullOrEmpty(model.returnUrl)) { if (Url.IsLocalUrl(model.returnUrl)) { swal.Url = model.returnUrl; swal.MessageType = true; return(Json(swal)); } } } } } if (!string.IsNullOrEmpty(model.returnUrl)) { if (Url.IsLocalUrl(model.returnUrl)) { return(Redirect(model.returnUrl)); } } swal.MessageType = true; return(Json(swal)); }