Пример #1
0
        /// <summary>
        /// 设置缓存
        /// </summary>
        /// <param name="key">cache_key</param>
        /// <param name="something">content if null : remove cache</param>
        /// <returns></returns>
        private void SetCache(string key, object something = null)
        {
            if (key != null)
            {
                if (something == null)
                {
                    //删除缓存
                    DistributedCacheManager.Remove(key);
                }
                else
                {
                    //根据key获取缓存
                    var content = DistributedCacheManager.Get(key);
                    if (content != null)
                    {
                        //删除缓存
                        DistributedCacheManager.Remove(key);
                    }

                    //设置缓存
                    DistributedCacheManager.Set(key, something, 10);
                }
            }
            return;
        }
Пример #2
0
        public async Task <string> GetUserID(string token, bool isLogin = false)
        {
            var userInfoClient = new UserInfoClient(DiscoveryResponse.UserInfoEndpoint);
            var response       = await userInfoClient.GetAsync(token);

            var claims = response.Claims;

            foreach (var claim in claims)
            {
                if (claim.Type == "sub")
                {
                    if (!isLogin)
                    {
                        //在缓存中查找Token
                        var cacheToken = DistributedCacheManager.Get(claim.Value);
                        if (cacheToken == null)
                        {
                            return(null);
                        }
                    }

                    return(claim.Value);
                }
            }

            return(null);
        }
Пример #3
0
        public void TestCsRedisClient()
        {
            BuildServiceForSqlServer();
            var dbContext = AspectCoreContainer.Resolve <IDbContextCore>();

            RedisHelper.Set("test_cache_key", JsonConvertor.Serialize(dbContext.GetCurrentDatabaseTableList()),
                            10 * 60);
            Thread.Sleep(2000);
            var content = DistributedCacheManager.Get("test_cache_key");

            Assert.IsNotNull(content);
        }
Пример #4
0
 public string Resolve(object source, object destination, Guid sourceMember, string destMember, ResolutionContext context)
 {
     return(_distributedCacheManager.Get($"UserNameResolver:{sourceMember}", () =>
     {
         var user = _users.GetAsync(sourceMember).Result;
         if (user == null)
         {
             return "Something is wrong with this users data";
         }
         return user.UserName;
     }));
 }