void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
        {
            HttpSessionStateBase session    = filterContext.HttpContext.Session;
            Controller           controller = filterContext.Controller as Controller;

            BackofficeUser bou = SessionHelper.Get <BackofficeUser>("bou");

            if (bou != null)
            {
                BackofficeHelper boh = new BackofficeHelper();

                Callback cb = boh.isUserLoggedIn(bou);
                if (!cb.success)
                {
                    controller.HttpContext.Response.Redirect("/backoffice/login");
                    filterContext.Result = new EmptyResult();
                }
            }
            else
            {
                controller.HttpContext.Response.Redirect("/backoffice/login");
                filterContext.Result = new EmptyResult();
            }

            this.OnActionExecuting(filterContext);
        }
        public Token Create(BackofficeUser user)
        {
            var claims = new[]
            {
                new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
                new Claim(ClaimTypes.Email, user.Email)
            };
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject            = new ClaimsIdentity(claims),
                Expires            = DateTime.UtcNow.AddHours(1),
                SigningCredentials = new SigningCredentials(
                    new SymmetricSecurityKey(jsonWebTokenSecretKey),
                    SecurityAlgorithms.HmacSha256Signature)
            };
            var createdToken = tokenHandler.CreateToken(tokenDescriptor);

            return(new Token(value: tokenHandler.WriteToken(createdToken)));
        }