public async Task OnActionExecutionAsync(ActionExecutingContext filterContext, ActionExecutionDelegate next) { MojDbContext db = filterContext.HttpContext.RequestServices.GetService <MojDbContext>(); LogiraniKorisnikSesija l = filterContext.HttpContext.GetLogiraniKorisnik(); if (l == null) { filterContext.Result = new RedirectToActionResult("Nonauthorized", "Home", new { area = "" }); return; } bool isAdmin; if (l.LoginRola.OpisRole == "Administrator") { isAdmin = true; } else { isAdmin = false; } if (_radnik && isAdmin == false) { await next(); return; } if (_administrator && isAdmin == true) { await next(); return; } filterContext.Result = new RedirectToActionResult("Nonauthorized", "Home", new { area = "" }); }
public static LogiraniKorisnikSesija GetLogiraniKorisnik(this HttpContext context) { LogiraniKorisnikSesija korisnik = context.Session.GetObjectFromJson <LogiraniKorisnikSesija>(LogiraniKorisnik); if (korisnik == null) { korisnik = context.Request.GetCookieJson <LogiraniKorisnikSesija>(LogiraniKorisnik); context.Session.SetObjectAsJson(LogiraniKorisnik, korisnik); } return(korisnik); }
public static void SetLogiraniKorisnik(this HttpContext context, LogiraniKorisnikSesija korisnik, bool snimiUCookie = false) { context.Session.SetObjectAsJson(LogiraniKorisnik, korisnik); if (snimiUCookie) { context.Response.SetCookieJson(LogiraniKorisnik, korisnik); } else { context.Response.SetCookieJson(LogiraniKorisnik, null); } }
LogiraniKorisnikSesija napraviLogiranogKorisnika(Korisnik k) { LogiraniKorisnikSesija lSend = new LogiraniKorisnikSesija() { DatumZaposlenja = k.DatumZaposlenja, Id = k.Id, Ime = k.Ime, LoginID = k.LoginID, Login = _db.Login.Where(a => a.Id == k.LoginID).FirstOrDefault(), LoginRola = _db.LoginRola.Where(a => a.Id == k.LoginRolaId).FirstOrDefault(), LoginRolaId = k.LoginRolaId, PhotoRuta = k.PhotoRuta, Prezime = k.Prezime }; return(lSend); }