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(); }
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)); }