public async Task OnActionExecutionAsync(ActionExecutingContext filterContext, ActionExecutionDelegate next) { var requestUrl = filterContext.HttpContext.Request.GetEncodedUrl(); KorisnickiNalog k = await filterContext.HttpContext.GetLogiraniKorisnik(); if (k == null) { if (filterContext.Controller is Controller controller) { controller.TempData["error_poruka"] = "Niste logirani"; controller.TempData["requestUrl"] = requestUrl; } filterContext.Result = new RedirectToActionResult("Index", "Autentifikacija", new { @area = "" }); return; } //Preuzimamo DbContext preko app services CZEContext db = filterContext.HttpContext.RequestServices.GetService <CZEContext>(); if (_ulogeKorisnika.Any(a => a == k.UlogaKorisnika)) { await next(); return; } if (filterContext.Controller is Controller c1) { c1.TempData["error_poruka"] = "Nemate pravo pristupa"; c1.TempData["requestUrl"] = requestUrl; } filterContext.Result = new RedirectToActionResult("Index", "Autentifikacija", new { @area = "" }); }
public static async Task RemoveLogiraniKorisnik(this HttpContext context) { CZEContext db = context.RequestServices.GetService <CZEContext>(); context.Session.Remove(LogiraniKorisnik); AutorizacijskiToken obrisati = db.AutorizacijskiTokeni.FirstOrDefault(x => x.Vrijednost == context.GetTrenutniToken()); if (obrisati != null) { try { db.AutorizacijskiTokeni.Remove(obrisati); await db.SaveChangesAsync(); } catch (Exception e) { Console.WriteLine(e); throw; } } }
public static async Task SetLogiraniKorisnik(this HttpContext context, KorisnickiNalog nalog, bool snimiUCookie = false) { if (snimiUCookie) { CZEContext db = context.RequestServices.GetService <CZEContext>(); string stariToken = context.Request.GetCookieJson <string>(LogiraniKorisnik); if (stariToken != null) { AutorizacijskiToken obrisati = db.AutorizacijskiTokeni.FirstOrDefault(x => x.Vrijednost == stariToken); if (obrisati != null) { db.AutorizacijskiTokeni.Remove(obrisati); await db.SaveChangesAsync(); } } if (nalog != null) { string ip = context.Connection.RemoteIpAddress.ToString(); string token = Guid.NewGuid().ToString(); db.AutorizacijskiTokeni.Add(new AutorizacijskiToken { Vrijednost = token, KorisnickiNalogId = nalog.KorisnickiNalogId, IpAdresa = ip, VrijemeEvidentiranja = DateTime.Now }); await db.SaveChangesAsync(); context.Response.SetCookieJson(LogiraniKorisnik, token); } } else { context.Session.Set(LogiraniKorisnik, nalog); } }
public static async Task <KorisnickiNalog> GetLogiraniKorisnik(this HttpContext context) { var sesija = context.Session.Get <KorisnickiNalog>(LogiraniKorisnik); if (sesija != null) { return(sesija); } CZEContext db = context.RequestServices.GetService <CZEContext>(); string token = context.Request.GetCookieJson <string>(LogiraniKorisnik); if (token == null) { return(null); } return(await db.AutorizacijskiTokeni .Where(x => x.Vrijednost == token) .Select(s => s.KorisnickiNalog) .SingleOrDefaultAsync()); }
public KorisnickiNalogController(CZEContext db, IConfiguration config) { _db = db; _config = config; }
public KursController(CZEContext db) { _db = db; }
public ZaposlenikController(CZEContext db) { _db = db; }
public HomeController(CZEContext db) { _db = db; }
public GrupaController(CZEContext db) { _db = db; }
public TestController(CZEContext db) { _db = db; }
public PrisustvoController(CZEContext db) { _db = db; }
public RegistracijaViewComponent(CZEContext db) { _db = db; }
public OsobaController(CZEContext db) { _db = db; }
public CentarController(CZEContext db) { _db = db; }
public SlikaController(CZEContext db, IConfiguration config1) { _db = db; _config = config1; }
public AutentifikacijaController(CZEContext db) { _db = db; }
public LoginViewComponent(CZEContext db) { _db = db; }
public UplataKandidataController(CZEContext db) { _db = db; }
public GrupaKandidatiController(CZEContext db) { _db = db; }
public KandidatController(CZEContext db) { _db = db; }
public KategorijaNavListViewComponent(CZEContext db) { _db = db; }
public OcjenaController(CZEContext db) { _db = db; }
public KursKategorijaController(CZEContext db) { _db = db; }