Пример #1
0
        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));
        }
Пример #2
0
 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));
 }