Ejemplo n.º 1
0
        public async Task <ActionResult <string> > Prijava(PrijavaViewModel prijavaViewModel)
        {
            Korisnik korisnik;

            if ((korisnik = await Context.Korisnici.Where(korisnik => korisnik.Email == prijavaViewModel.Email).SingleOrDefaultAsync()) != null)
            {
                //Console.WriteLine(korisnik.Hash);
                //Console.WriteLine(Hash(prijavaViewModel.Lozinka + korisnik.Salt));
                if (korisnik.Hash == Hash(prijavaViewModel.Lozinka + korisnik.Salt))
                {
                    List <Claim> claims = new List <Claim> {
                        new Claim(ClaimTypes.NameIdentifier, korisnik.Id.ToString()),
                        new Claim(ClaimTypes.Name, korisnik.Email)
                    };

                    SecurityTokenDescriptor tokenDescriptor = new SecurityTokenDescriptor
                    {
                        Subject            = new ClaimsIdentity(claims),
                        Expires            = DateTime.Now.AddDays(1),
                        SigningCredentials = new SigningCredentials(
                            new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["JWT:Key"])),
                            SecurityAlgorithms.HmacSha256Signature
                            ),
                        Issuer   = Configuration["JWT:Issuer"],
                        Audience = Configuration["JWT:Audience"]
                    };
                    JwtSecurityTokenHandler tokenHandler = new JwtSecurityTokenHandler();
                    SecurityToken           token        = tokenHandler.CreateToken(tokenDescriptor);

                    return(Ok(new { token = tokenHandler.WriteToken(token) }));
                }
            }
            return(NotFound(new { message = "Korisničko ime ili lozinka pogrešni." }));
        }
Ejemplo n.º 2
0
 public ActionResult Login(PrijavaViewModel model, string returnUrl)
 {
     if (!ModelState.IsValid)
     {
         return(View(Login));
     }
     return(View());
 }
Ejemplo n.º 3
0
        public PrijavaPage(string korisnickoIme = null)
        {
            InitializeComponent();

            KorisnickoIme.Text = korisnickoIme;
            BindingContext     = _model = new PrijavaViewModel();

            KorisnickoIme.Text = "korisnik1";
            Lozinka.Text       = "test";
        }
        public IActionResult Prijava(PrijavaViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }


            var korisnickiNalog = _context.KorisnickiNalogs
                                  .Where(i => i.Email == model.Email)
                                  .AsEnumerable()
                                  .Where(i => i.LozinkaHash ==
                                         PasswordSettings.GetHash(model.Lozinka, Convert.FromBase64String(i.LozinkaSalt)));

            if (korisnickiNalog == null || !korisnickiNalog.Any())
            {
                TempData["errorMessage"] = "Niste unijeli ispravne podatke za prijavu.";
                return(View(model));
            }


            if ((korisnickiNalog.First().Permisije == 0 &&
                 _context.Administrators
                 .Where(i => i.KorisnickiNalogId == korisnickiNalog.First().KorisnickiNalogId).First().Aktivan) ||
                (korisnickiNalog.First().Permisije == 1 &&
                 _context.Stomatologs
                 .Where(i => i.KorisnickiNalogId == korisnickiNalog.First().KorisnickiNalogId).First().Aktivan) ||
                (korisnickiNalog.First().Permisije == 2 &&
                 _context.MedicinskoOsobljes
                 .Where(i => i.KorisnickiNalogId == korisnickiNalog.First().KorisnickiNalogId).First().Aktivan) ||
                korisnickiNalog.First().Permisije == 3)
            {
                HttpContext.SetLogiraniKorisnik(korisnickiNalog.First(), true);                               //setuje logiranog korisnika

                var prijavaLokacijaMail    = GetLoginLocation(model.Email, "mail");                           //dobavlja informacije o lokaciji prijave
                var prijavaLokacijaMobitel = GetLoginLocation(model.Email, "mobitel");                        //dobavlja informacije o lokaciji prijave

                var trenutnoVrijeme    = DateTime.Now.ToString(new CultureInfo("de-DE"));                     //trenutno vrijeme prebacuje na njemacki format datum 19.03.2020 15:35:43
                var primalacPoruke     = korisnickiNalog.First().Ime + " " + korisnickiNalog.First().Prezime; //ime i prezime za email
                var primalacEmail      = korisnickiNalog.First().Email;                                       //primalac email-a
                var prijavaEmailPoruka = "Poštovani " + primalacPoruke +
                                         ",\nDetektovana je prijava na vaš račun" +
                                         "\n-----------------------------------------------\n\n" + prijavaLokacijaMail +
                                         "\nDatum i vrijeme: " + trenutnoVrijeme +
                                         "\n!!!AKO OVO NISTE BILI VI, MOLIMO VAS DA PROMJENITE VAŠU LOZINKU!!!" +
                                         "\nIli nas kontaktirajte na naš mail: [email protected]"; //generisanje email poruke

                var primalacPorukeTelefon = korisnickiNalog.First().Mobitel;



                //VAZNO!!! UKLONI KOMENTARE DA BI PRORADILO SLANJE PORUKA

                var client = new Client(creds: new Nexmo.Api.Request.Credentials
                {
                    ApiKey    = _configuration.GetValue <string>("NexmoSmsGateway:ApiKey"),
                    ApiSecret = _configuration.GetValue <string>("NexmoSmsGateway:ApiSecret")
                });
                var results = client.SMS.Send(request: new SMS.SMSRequest
                {
                    from = "Ordinacija",
                    to   = primalacPorukeTelefon,
                    text = prijavaLokacijaMobitel
                });


                EmailSettings.SendEmail(_configuration, primalacPoruke, primalacEmail, "Nova prijava detektovana", prijavaEmailPoruka);//šalje email

                return(RedirectToAction("Pocetna", "Profil"));
            }

            TempData["errorMessage"] = "Niste unijeli ispravne podatke za prijavu.";
            return(View(model));
        }
Ejemplo n.º 5
0
        public ActionResult PosaljiPrijavuAction(IFormCollection forma, IFormFile file, PrijavaViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                string wwwPath     = this.Environment.WebRootPath;
                string contentPath = this.Environment.ContentRootPath;

                string path = Path.Combine(this.Environment.WebRootPath, "images");
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                var extension         = Path.GetExtension(file.FileName);
                var allowedExtensions = new[] {
                    ".png", ".jpg", ".jpeg"
                };
                if (allowedExtensions.Contains(extension))
                {
                    string   prezime        = viewModel.Prezime;
                    string   ime            = viewModel.Ime;
                    long     jmbg           = viewModel.JMBG;
                    string   mjestoRodjenja = viewModel.MjestoRodjenja;
                    DateTime datumRodjenja  = StringToDateTime(forma["fldDatumRodjenja"].ToString());
                    int      mobitel        = viewModel.Mobitel;
                    string   email          = viewModel.Email;
                    string   adresa         = viewModel.Adresa;
                    string   opcina         = viewModel.Opcina;
                    int      brojIndeksa    = viewModel.Index;


                    string polValue = forma["pol"].ToString();
                    Pol    pol      = Pol.Musko;

                    Debug.WriteLine("POLLL " + polValue);
                    if (polValue.Equals("zensko"))
                    {
                        pol = Pol.Zensko;
                    }


                    string kanton = forma["dlKanton"].ToString();

                    string fakultet      = forma["dlFakultet"].ToString();
                    int    ciklusStudija = Int32.Parse(forma["dlCiklusStudija"].ToString());
                    int    godinaStudija = Int32.Parse(forma["dlGodinaStudija"].ToString());

                    string fileName = GenerisiPathSlike(prezime, ime) + extension;
                    using (FileStream stream = new FileStream(Path.Combine(path, fileName), FileMode.Create))
                    {
                        file.CopyTo(stream);
                    }


                    SkolovanjeInfo   skolovanjeInfo   = new SkolovanjeInfo(fakultet, brojIndeksa, ciklusStudija, godinaStudija);
                    PrebivalisteInfo prebivalisteInfo = new PrebivalisteInfo(adresa, kanton, opcina);
                    LicniPodaci      licniPodaci      = new LicniPodaci(prezime, ime, mjestoRodjenja, pol, email, jmbg, datumRodjenja, mobitel, fileName);

                    ZahtjevZaUpis zahtjevZaUpis = new ZahtjevZaUpis();
                    zahtjevZaUpis.LicniPodaci      = licniPodaci;
                    zahtjevZaUpis.PrebivalisteInfo = prebivalisteInfo;
                    zahtjevZaUpis.SkolovanjeInfo   = skolovanjeInfo;



                    _context.LicniPodaci.Add(licniPodaci);
                    _context.PrebivalisteInfo.Add(prebivalisteInfo);
                    _context.SkolovanjeInfo.Add(skolovanjeInfo);

                    _context.ZahtjevZaUpis.Add(zahtjevZaUpis);

                    _context.SaveChanges();
                }
                else
                {
                    ViewBag.Message = "Slika mora biti u formatu .jpg, .jpeg, .png";
                    return(RedirectToAction("ObrazacZaUpis", "Home"));
                }

                return(RedirectToAction("Login", "Home"));
            }
            else
            {
                ModelState.AddModelError(string.Empty, "Pogrešno ispunjena forma.");
            }

            return(View(viewModel));
        }
Ejemplo n.º 6
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            PrijavaViewModel prijavaViewModel = e.Parameter as PrijavaViewModel;

            DataContext = prijavaViewModel;
        }