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));
        }
示例#2
0
        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));
        }
示例#3
0
        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;
        }