public ActionResult Login(AuthentificationLoginVm inputmodel, string returnurl) { if (ModelState.IsValid) { User logged_in_user = userService.GetUserByUsernameAndPassword(inputmodel.UserName, inputmodel.Password); //check credentials if (userService.CheckCredentials(inputmodel.UserName, inputmodel.Password)) { //alle roles voor de huidige gebruiker ophalen IEnumerable <string> rolenames = logged_in_user.Roles.Select <Role, string>(r => r.Name); string rolesstring = string.Join(";", rolenames.ToArray()); //We maken onze eigen ticket aan zodat ook de roles bewaard kunnen worden (in de userdata property) FormsAuthenticationTicket ticket = new FormsAuthenticationTicket( 1, // version logged_in_user.Gebruikersnaam, // Gebruikersnaam DateTime.Now, // created DateTime.Now.AddMinutes(FormsAuthentication.Timeout.TotalMinutes), // expires inputmodel.RememberMe, // persistent? rolesstring // roles van deze user gescheiden door ; ); //ticket encrypteren en in cookie zetten string encryptedTicket = FormsAuthentication.Encrypt(ticket); var authcookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); Response.Cookies.Add(authcookie); if (returnurl != null) { return(Redirect(returnurl)); } else { //redirect naar homepage TempData["SuccessMessage"] = "Je bent ingelogd!"; return(RedirectToAction("Index", "Home")); } } else { //ongeldige gebruikersnaam of wachtwoord //voeg een foutboodschap toe (wanneer key == "", dan hoort deze niet bij een bepaalde property) ModelState.AddModelError("", "De ingevoerde gebruikersnaam of wachtwoord is ongeldig"); //aanmeldingscherm opnieuw tonen return(View(inputmodel)); } } else { //onvolledige gegevens, toon formulier opnieuw return(View(inputmodel)); } ////inloggen door een authenticatie cookie te plaatsen op client //FormsAuthentication.SetAuthCookie("Admin", userService.CheckCredentials(inputmodel.UserName,inputmodel.Password)); // return RedirectToAction("Index", new { Controller = "Home" }); // } // else // { // //ongeldige gebruikersnaam of wachtwoord // ModelState.AddModelError("", new Exception("U voerde een ongeldige gebruikersnaam of paswoord in!")); // return View(inputmodel); // } //} //else { // //onvolledige gegevens, toon formulier opnieuw // return View(inputmodel); //} }
// GET: Authentication public ActionResult Login() { AuthentificationLoginVm model = new AuthentificationLoginVm(); return(View(model)); }