Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
 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;
     }
 }