Esempio n. 1
0
 public ActionResult Index()
 {
     try
     {
         ViewBag.OperatorName = Convert.ToString(HttpContext.Request.Cookies["operatorName"].Value);
         ViewBag.RoleName     = JwtProps.GetRole();
     }
     catch { }
     return(View());
 }
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            if (!String.IsNullOrEmpty(base.Roles))
            {
                _allowedRoles = base.Roles.Split(new char[] { ',' });
                for (int i = 0; i < _allowedRoles.Length; i++)
                {
                    _allowedRoles[i] = _allowedRoles[i].Trim();
                }
            }

            //Если токен отсутствует в куках, считаем не авторизованным
            if (!JwtProps.IsExistTokenInCookie())
            {
                return(false);
            }

            //Если токен истек
            if (JwtProps.IsExpiredToken())
            {
                //1 - проверяем присутствует ли в куках Refresh Token, если нет то считаем не авторизованным
                if (!JwtProps.IsExistRefreshTokenInCookie())
                {
                    return(false);
                }
                //2 - пытаемся обновить токены
                if (!AccountController.RefreshToken(JwtProps.GetUser(), JwtProps.GetRefreshToken()))
                {
                    JwtProps.Logout();
                    return(false);
                }
            }
            //Роли указанные в атрибуте
            _tokenRoles = JwtProps.GetRole();
            return(Role());
        }