/// <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); } }
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; } }