Example #1
0
        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" }));
            }
        }
Example #2
0
        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;
                }
            }
        }