public bool LoginUserIsValid(LoginViewModel user) { if(user !=null) { var query = (from u in db.User where u.Username == user.Username select u).FirstOrDefault(); if (query != null) { if (ValidatePassword(user.Password, CreateHash(query.Password, query.Salt))) { userValue = query; return true; } else { return false; } } } return false; }
public virtual ActionResult Login(LoginViewModel user, string returnUrl = "") { if (ModelState.IsValid) { bool isValid = um.LoginUserIsValid(user); if (isValid) // TU W OGOLE NIE WCHODZI { if(um.ChangeActiveAccount(user)) { var modelUser = um.getUser(user.Username, user.Password); var operations = modelUser.Operations.Select(m => m.Name).ToArray(); var groups = modelUser.OperationGroups.Select(g=>g.Name).ToArray(); CustomPrincipalSerializeModel serializeModel = new CustomPrincipalSerializeModel(); serializeModel.UserId = modelUser.Id; serializeModel.Username = modelUser.Username; serializeModel.operations = operations; serializeModel.groups = groups; string userData = JsonConvert.SerializeObject(serializeModel); FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket( 1, modelUser.Username, DateTime.Now, DateTime.Now.AddMinutes(15), false, userData); string encTicket = FormsAuthentication.Encrypt(authTicket); HttpCookie faCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket); Response.Cookies.Add(faCookie); if (operations.Contains("admin")) { return RedirectToAction("Index", "User"); } //FormsAuthentication.SetAuthCookie(user.Username, true); return RedirectToAction("Index", "Home"); } else { ModelState.AddModelError("", "Your account is not active! "); } } else { ModelState.AddModelError("", "Login data is incorrect!"); } } return View(); }
public bool ChangeActiveAccount(LoginViewModel user) { var model = db.User.FirstOrDefault(x => x.Username == user.Username); if(model.data<DateTime.UtcNow) { return false; } else { return true; } }