public ActionResult LogOn(LogOnModel model) { if (!Request.IsAuthenticated) { if (!UserCRUD.LogOnExistingUsername(model.username)) { ModelState.AddModelError("NotExistingAccount", "Questo Account non esiste! Inserisci nuovamente l'username"); } if (ModelState.IsValid) { User user = UserCRUD.LogOnAccess(model.username, model.password); if (user == null) { ModelState.AddModelError("NoCorrectPassword", "Password non corretta!"); return View(); } else { //cookie //permette di memorizzare delle info sul cookie FormsAuthenticationTicket ticket = new FormsAuthenticationTicket (1, //numero di versione del ticket user.username,// nome dell'username a cui appartiene il cookie DateTime.Now, //data e ora locali in cui il COOKIE è STATO EMESSO DateTime.Now.Add(FormsAuthentication.Timeout)//è la data di scadenza del ticket, quando termina l'user viene deloggato // il Timeout è di 2800 sec, per default è così, ma possiamo modificarlo andando su WEB.CONFIG nel tag <Authentication> e poi nel tag<TimeOut> , false //persistenza... da mettere sempre a false , user.Ruolo.tipo_ruolo //nel cookie scriviamo anche il ruolo che ha quell'utente nell'applicazione web ); //crittografo il cookie per renderlo sicuro altrimenti chiunque può prenderlo e verificare ciò che vi ho scritto dentro var encticket = FormsAuthentication.Encrypt(ticket); //Aggiunge All'insieme dei Cookie il nome del Cookie ed il contenuto del ticket crittografato nel cookie HttpContext.Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encticket)); return RedirectToAction("Index", "Home"); //return Redirect(FormsAuthentication.GetRedirectUrl(user.username, false)); } } else { ModelState.AddModelError("ErrorInModel", "spiacente hai compilato l'user con valori non adatti"); return View(); } } else { //return RedirectToAction("ControlPannel"); } return View(); }
public ActionResult Registration(LogOnModel logOnModel) { if (ModelState.IsValid) { } TempData["c"] = UserCRUD.CreateRandomPassword(); return View(); }