public Zaposlenik PrijavljeniZaposlenik(ZaposlenikZaLogin zaposlenik)
        {
            Zaposlenik userData = DbContext.Zaposlenici
                                  .FirstOrDefault(z => z.KorisnickoIme == zaposlenik.KorisnickoIme);

            if (userData == null)
            {
                return(null);
            }

            byte[] salt   = Convert.FromBase64String(userData.LozinkaSalt);
            var    pkdbf2 = new Rfc2898DeriveBytes(zaposlenik.Lozinka, salt, 5000);

            byte[] hash         = pkdbf2.GetBytes(20);
            byte[] passwordHash = new byte[52];

            Array.Copy(salt, 0, passwordHash, 0, 32);
            Array.Copy(hash, 0, passwordHash, 32, 20);

            if (Convert.ToBase64String(passwordHash) != userData.Lozinka)
            {
                return(null);
            }
            return(userData);
        }
Example #2
0
        public ActionResult Prijava(ZaposlenikZaLogin zaposlenik)
        {
            if (ModelState.IsValid)
            {
                zaposlenik.KorisnickoIme = zaposlenik.KorisnickoIme.ToLower();
                Zaposlenik trenutniZaposlenik = _zaposlenici.PrijavljeniZaposlenik(zaposlenik);
                if (trenutniZaposlenik != null)
                {
                    string token = TokenManager.GenerateToken(trenutniZaposlenik);
                    //If expiration date isn't set, cookie disappears when browser is closed
                    HttpCookie cookie = new HttpCookie("auth_token")
                    {
                        Value    = token,
                        HttpOnly = true,
                        Expires  = DateTime.Now.AddMinutes(30)
                    };
                    System.Web.HttpContext.Current.Response.Cookies.Add(cookie);

                    return(RedirectToAction("Predbiljezba", "Home"));
                }
                ViewBag.ErrorMessage = "Korisničko ime ili lozinka nisu ispravni!";
            }
            return(View());
        }