public ActionResult LoginRequest(LoginDataModel user) { if (ModelState.IsValid) { using (DatabaseQuery query = new DatabaseQuery()) { PBKDF2Password password = query.GetPassword(user); //vraag het password van een gebruiker if (password != null) { //als het password niet leeg is match het password met de Database PasswordMatcher matcher = new PasswordMatcher(password, user.Password, false); //False kijkt of het interne wachtwoord gedisposed moet worden als hij gematched is. if (matcher.IsMatch) //Als een match is { try {//Probeer een Sessie te maken Session session = (Session)this.Session["__MySessionObject"]; using (DatabaseQuery userQuery = new DatabaseQuery()) { session.User = userQuery.GetUser(user); //Klant krijgt een sessie session.LoggedIn = true; this.Session["__MySessionObject"] = session; List<Order> orders = userQuery.GetOrdersByUser(session.User); foreach(Order order in orders) { if (order.Status == OrderStatus.TOBEPAID) { double days = (DateTime.Now - order.DTime).TotalDays; if (days > 14) { order.Status = OrderStatus.EXPIRED; userQuery.UpdateOrderStatus(order); } } } } if (((Session)this.Session["__MySessionObject"]).User.Role == UserRole.MANAGER) { return RedirectToAction("manage"); //Ga naar manager pagina } else if (((Session)this.Session["__MySessionObject"]).User.Role == UserRole.ADMIN) { return RedirectToAction("admin"); //Ga naar manager pagina } else if(((Session)this.Session["__MySessionObject"]).ShoppingBag.OrderLines.Count > 0) { return RedirectToAction("Shoppingbag"); } return RedirectToAction("Index"); //Ga terug naar de index } catch(Exception e) { TempData["ErrorMessage"] = "Er is iets fout gegaan met het inloggen: " + e; } } } TempData["ErrorMessage"] = "Gebruikersnaam en wachtwoord combinatie zijn onbekend"; return RedirectToAction("login", user); //redirect to faillure } } else { TempData["ErrorMessage"] = "Gebruikersnaam en/of wachtwoord combinatie is fout"; return RedirectToAction("Login", "Home", user); } }