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);
        }
        public void KreirajZaposlenika(Zaposlenik zaposlenik)
        {
            zaposlenik.LozinkaSalt = GenerateSalt();
            zaposlenik.Lozinka     = HashPassword(zaposlenik.Lozinka, zaposlenik.LozinkaSalt);

            DbContext.Zaposlenici.Add(zaposlenik);
            DbContext.SaveChanges();
        }
示例#3
0
        public static string GenerateToken(Zaposlenik trenutniZaposlenik)
        {
            byte[] key = Convert.FromBase64String(secret);
            SymmetricSecurityKey securityKey = new SymmetricSecurityKey(key);

            SecurityTokenDescriptor descriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new[] {
                    new Claim(ClaimTypes.Name, trenutniZaposlenik.KorisnickoIme),
                    new Claim(ClaimTypes.GivenName, String.Format("{0} {1}", trenutniZaposlenik.Ime, trenutniZaposlenik.Prezime))
                }),
                Expires            = DateTime.Now.AddMinutes(30),
                SigningCredentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256Signature),
            };

            JwtSecurityTokenHandler handler = new JwtSecurityTokenHandler();
            JwtSecurityToken        token   = handler.CreateJwtSecurityToken(descriptor);

            return(handler.WriteToken(token));
        }