public ActionResult Prijava(KorisnikPrijava model, string returnUrl) { if (ModelState.IsValid) { //dohvaćamo podatke o korisniku po korisničkom imenu var korisnikBaza = bazaPodataka.PopisKorisnika.FirstOrDefault(x => x.KorisnickoIme == model.KorisnickoIme); //provjeravamo hash lozinke iz baze i izračunati hash na temelju upisane lozinke na login formi bool passwordOK = korisnikBaza.Lozinka == Misc.PasswordHelper.IzracunajHash(model.Lozinka); if (passwordOK) { LogiraniKorisnik prijavljeniKorisnik = new LogiraniKorisnik(korisnikBaza); LogiraniKorisnikSerializeModel serializeModel = new LogiraniKorisnikSerializeModel(); serializeModel.CopyFromUser(prijavljeniKorisnik); JavaScriptSerializer serializer = new JavaScriptSerializer(); string korisnickiPodaci = serializer.Serialize(serializeModel); FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket( 1, prijavljeniKorisnik.Identity.Name, DateTime.Now, DateTime.Now.AddDays(1), false, korisnickiPodaci); string ticketEncrypted = FormsAuthentication.Encrypt(authTicket); HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, ticketEncrypted); Response.Cookies.Add(cookie); //ako postoji url kojem je korisnik prvotno pristupao tada preusmjeravamo na taj url if (!String.IsNullOrEmpty(returnUrl) && Url.IsLocalUrl(returnUrl)) { return(Redirect(returnUrl)); } return(RedirectToAction("Index", "Home")); } } ModelState.AddModelError("", "Neispravno korisničko ime ili lozinka"); return(View(model)); }
public ActionResult Prijava(KorisnikPrijava model, string returnUrl) { if (ModelState.IsValid) { var korisnikBaza = bazaPodataka.PopisKorisnika.FirstOrDefault(x => x.korisnicko_ime == model.KorisnickoIme); if (korisnikBaza != null) { var passwordOK = Misc.PasswordHelper.ValidatePassword(model.Lozinka, korisnikBaza.lozinka, korisnikBaza.salt); if (passwordOK) { LogiraniKorisnik prijavljeniKorisnik = new LogiraniKorisnik(korisnikBaza); LogiraniKorisnikSerializeModel serializeModel = new LogiraniKorisnikSerializeModel(); serializeModel.CopyFromUser(prijavljeniKorisnik); JavaScriptSerializer serializer = new JavaScriptSerializer(); string korisnickiPodaci = serializer.Serialize(serializeModel); FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket( 1, prijavljeniKorisnik.Identity.Name, DateTime.Now, DateTime.Now.AddDays(1), false, korisnickiPodaci ); string ticketEncrypted = FormsAuthentication.Encrypt(authTicket); HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, ticketEncrypted); Response.Cookies.Add(cookie); if (!string.IsNullOrEmpty(returnUrl) && Url.IsLocalUrl(returnUrl)) { return(Redirect(returnUrl)); } return(RedirectToAction("Index", "App")); } } } ModelState.AddModelError("", "Neispravno korisničko ime ili lozinka!"); return(View(model)); }