public override void OnActionExecuting(ActionExecutingContext filterContext) { try { var request = filterContext.RequestContext.HttpContext.Request; var session = filterContext.RequestContext.HttpContext.Session; //Encontra um cookie com a identificação AuthID, se não encontrar //será disparada uma excessão, caindo no catch. var cookieAuthId = request.Cookies["AuthID"].Value; //Verfica se existe algum usuário no banco com o mesmo token de identificação do cookie DemoIoTContext db = new DemoIoTContext(); var usuarioDb = db.Users.Where(m => m.AuthId == cookieAuthId).FirstOrDefault(); //Se não existir nenhum usuário com esse token, ou seja, o usuarioDB virá nulo, redireciona //para a página de login if (usuarioDb == null) { filterContext.Result = new RedirectToRouteResult(new System.Web.Routing.RouteValueDictionary(new { area = "", controller = "Authentication", action = "Login" })); } } catch { filterContext.Result = new RedirectToRouteResult(new System.Web.Routing.RouteValueDictionary(new { area = "", controller = "Authentication", action = "Login" })); } }
public override void OnActionExecuting(ActionExecutingContext filterContext) { var request = filterContext.RequestContext.HttpContext.Request; var session = filterContext.RequestContext.HttpContext.Session; //Verifica se existe algum cookie com a identificação AuthID if (request.Cookies.AllKeys.Contains("AuthID")) { var cookieAuthId = request.Cookies["AuthID"].Value; //Busca o usuário no banco com o token de autenticação existente no cookie DemoIoTContext db = new DemoIoTContext(); var usuarioDb = db.Users.Where(m => m.AuthId == cookieAuthId).FirstOrDefault(); //Se o usuário existir if (usuarioDb != null && usuarioDb.AuthId == cookieAuthId) { //Guarta o usuario em uma variável acessível pelos controllers filterContext.Controller.ViewBag.User = usuarioDb; } } }