public void OnActionExecuting(ActionExecutingContext context) { string token = context.HttpContext.Request.Headers["Authorization"]; if (token == null) { context.Result = new ContentResult() { Content = "Token is required", }; } using (var sessions = new SessionLogic(new UserRepository(ContextFactory.GetNewContext()))) { if (!sessions.IsValidToken(token)) { context.Result = new ContentResult() { Content = "Invalid Token", }; } if (!sessions.HasLevel(token, _role)) { context.Result = new ContentResult() { Content = "The user isen't " + _role, }; } } }
private void VerifyToken(Guid token, ActionExecutingContext context) { // Usamos using asi nos aseguramos que se llame el Dispose de este `sessions` enseguida salgamos del bloque using (var sessions = new SessionLogic(null, null)) { // Verificamos que el token sea valido if (!sessions.IsValidToken(token)) { context.Result = new ContentResult() { Content = "Debe iniciar sesiĆ³n para acceder", }; } // Verificamos que el rol del usuario sea correcto if (!sessions.HasLevel(token, role)) { context.Result = new ContentResult() { Content = "No tiene permiso para acceder", }; } } }