Exemple #1
0
 /// <summary>
 /// 判断 Token 是否有效
 /// </summary>
 /// <param name="token">Token</param>
 /// <returns></returns>
 public async Task <bool> IsActiveAsync(string token)
 {
     if (redisCacheHelper.Exist(token))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Exemple #2
0
 public IQueryable <T_Category> GetAllCategories()
 {
     if (!RedisCacheHelper.Exist("Categories"))
     {
         RedisCacheHelper.Set("Categories", dal.LoadEntities(c => true));
     }
     else
     {
         var category = RedisCacheHelper.Get <IQueryable <T_Category> >("Categories");
         if (category == null)
         {
             RedisCacheHelper.Set("Categories", dal.LoadEntities(c => true));
         }
     }
     return(RedisCacheHelper.Get <IQueryable <T_Category> >("Categories"));
 }
        /// <summary>
        /// 验证授权
        /// </summary>
        /// <param name="httpContext"></param>
        /// <returns></returns>
        public Task Invoke(HttpContext httpContext)
        {
            try
            {
                //检测是否包含'Authorization'请求头,如果不包含则直接放行
                if (!httpContext.Request.Headers.ContainsKey("Authorization"))
                {
                    return(_next(httpContext));
                }
                var tokenHeader = httpContext.Request.Headers["Authorization"];
                tokenHeader = tokenHeader.ToString().Substring("Bearer ".Length).Trim();
                //redis jwt 验证
                RedisCacheHelper redisCacheHelper = new RedisCacheHelper();
                if (!redisCacheHelper.Exist(tokenHeader))
                {
                    throw new MyException("token不存在!");
                }

                TokenModel tm = new TokenModel();
                if (JwtHelper.ValidateRuleBase(tokenHeader, out tm))
                {
                    //授权
                    var claimList = new List <Claim>();
                    var claim     = new Claim(ClaimTypes.Role, tm.Role);
                    claimList.Add(claim);
                    var identity  = new ClaimsIdentity(claimList);
                    var principal = new ClaimsPrincipal(identity);
                    httpContext.User = principal;
                    return(_next(httpContext));
                }
                else
                {
                    throw new MyException("验证不通过");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }