protected override async Task <AuthenticateResult> HandleAuthenticateAsync() { if (!Request.Headers.ContainsKey("Authorization")) { return(AuthenticateResult.Fail("Missing Authorization Header")); } try { var authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]); var credentialBytes = Convert.FromBase64String(authHeader.Parameter); var credentials = System.Text.Encoding.UTF8.GetString(credentialBytes).Split(':'); var username = credentials[0]; var password = credentials[1]; PrijavljeniKlijent = _klijentservice.Authenticiraj(username, password); } catch { return(AuthenticateResult.Fail("Invalid Authorization Header")); } if (PrijavljeniKlijent == null) { return(AuthenticateResult.Fail("Invalid Username or Password")); } var claims = new List <Claim> { new Claim(ClaimTypes.NameIdentifier, PrijavljeniKlijent.KorisnickoIme), new Claim(ClaimTypes.Name, PrijavljeniKlijent.Ime), }; claims.Add(new Claim(ClaimTypes.Role, PrijavljeniKlijent.Uloga.Naziv)); //var identity = new ClaimsIdentity(claims, Scheme.Name); // var principal = new ClaimsPrincipal(identity); // var ticket = new AuthenticationTicke var identity = new ClaimsIdentity(claims, Scheme.Name); var principal = new ClaimsPrincipal(identity); var ticket = new AuthenticationTicket(principal, Scheme.Name); return(AuthenticateResult.Success(ticket)); }
protected override async Task <AuthenticateResult> HandleAuthenticateAsync() { if (!Request.Headers.ContainsKey("Authorization")) { return(AuthenticateResult.Fail("Missing Authorization Header")); } Model.Zaposlenik user = null; Model.Klijent klijent = null; try { var authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]); var credentialBytes = Convert.FromBase64String(authHeader.Parameter); var credentials = Encoding.UTF8.GetString(credentialBytes).Split(':'); var username = credentials[0]; var password = credentials[1]; user = _userService.Authenticiraj(username, password); } catch { return(AuthenticateResult.Fail("Invalid Authorization Header")); } if (user == null) { return(AuthenticateResult.Fail("Invalid Username or Password")); } var claims = new List <Claim> { new Claim(ClaimTypes.NameIdentifier, user.Username), new Claim(ClaimTypes.Name, user.Ime), }; foreach (var role in user.ZaposleniciUloge) { claims.Add(new Claim(ClaimTypes.Role, role.Uloga.Naziv)); } var identity = new ClaimsIdentity(claims, Scheme.Name); var principal = new ClaimsPrincipal(identity); var ticket = new AuthenticationTicket(principal, Scheme.Name); return(AuthenticateResult.Success(ticket)); }
private async Task LoadIzvjestaj(int ID, string godina) { int brojrezervacija = 0; int ukupnorezervacija = 0; lblbrojrezervacija.Text = ""; lblUkupanbrojrezervacija.Text = " "; lblKlijent.Text = ""; int _godinaid = 0; List <Model.IzvjestajpoKlijentu> lista = new List <Model.IzvjestajpoKlijentu>(); Model.Klijent k = null; if (int.TryParse(godina.ToString(), out int godinaid)) { _godinaid = godinaid; } if (ID > 0 && _godinaid > 0) { k = await _klijent.GetById <Model.Klijent>(ID); List <Model.Rezervacija> rezervacije = await _rezervacije.Get <List <Model.Rezervacija> >(new RezervacijaSearchRequest { KlijentId = k.KlijentId, Godina = _godinaid }); foreach (var r in rezervacije) { brojrezervacija++; } lista.Add(new Model.IzvjestajpoKlijentu() { ImePrezime = k.Ime + " " + k.Prezime, Brojrezervacija = brojrezervacija }); int brojrezervacijatemp = brojrezervacija; } else if (ID > 0) { k = await _klijent.GetById <Model.Klijent>(ID); List <Model.Rezervacija> rezervacije = await _rezervacije.Get <List <Model.Rezervacija> >(new RezervacijaSearchRequest { KlijentId = k.KlijentId }); foreach (var r in rezervacije) { brojrezervacija++; } lista.Add(new Model.IzvjestajpoKlijentu() { ImePrezime = k.Ime + " " + k.Prezime, Brojrezervacija = brojrezervacija }); brojrezervacija = 0; } else if (_godinaid > 0) { List <Model.Klijent> klijenti = await _klijent.Get <List <Model.Klijent> >(null); foreach (var kl in klijenti) { List <Model.Rezervacija> rezervacije = await _rezervacije.Get <List <Model.Rezervacija> >(new RezervacijaSearchRequest { KlijentId = kl.KlijentId, Godina = _godinaid }); foreach (var r in rezervacije) { brojrezervacija++; } lista.Add(new Model.IzvjestajpoKlijentu() { ImePrezime = kl.Ime + " " + kl.Prezime, Brojrezervacija = brojrezervacija }); ukupnorezervacija += brojrezervacija; brojrezervacija = 0; } lblbrojrezervacija.Text = "Ukupan broj rezervacija za " + _godinaid.ToString() + ".godinu je: " + ukupnorezervacija.ToString() + "."; lblKlijent.Text = "Klijent " + lista[0].ImePrezime + " ima najveci broj rezervacija(" + lista[0].Brojrezervacija.ToString() + ") u " + _godinaid.ToString() + "godini."; } else { List <Model.Klijent> klijenti = await _klijent.Get <List <Model.Klijent> >(null); foreach (var kl in klijenti) { List <Model.Rezervacija> rezervacije = await _rezervacije.Get <List <Model.Rezervacija> >(new RezervacijaSearchRequest { KlijentId = kl.KlijentId }); foreach (var r in rezervacije) { brojrezervacija++; } lista.Add(new Model.IzvjestajpoKlijentu() { ImePrezime = kl.Ime + " " + kl.Prezime, Brojrezervacija = brojrezervacija }); ukupnorezervacija += brojrezervacija; brojrezervacija = 0; } lblbrojrezervacija.Text = "Ukupan broj rezervacija" + " je: " + ukupnorezervacija.ToString() + "."; lblKlijent.Text = "Klijent " + lista[0].ImePrezime + " ima najveci broj rezervacija(" + lista[0].Brojrezervacija.ToString() + ")."; } List <Model.IzvjestajpoKlijentu> sortirana = lista.OrderByDescending(x => x.Brojrezervacija).ToList(); dgvKlijenti.AutoGenerateColumns = false; dgvKlijenti.DataSource = sortirana; }