Ejemplo n.º 1
0
        public async Task <string> GetCSRFToken(bool _useCache = true)
        {
            if (!_useCache || !IsTokenCacheValid())
            {
                //Refresh token cache
                m_tokenCache = await GetNewTokenCache();
            }

            return(m_tokenCache.csrf.value);
        }
Ejemplo n.º 2
0
        private async Task <CsrfTokenCache> GetNewTokenCache()
        {
            IRestResponse tokenResponse = await SendGetCsrfTokenRequestAsync();

            if (tokenResponse.StatusCode != HttpStatusCode.OK)
            {
                throw new Exception(String.Format("Error getting 3DSpace CSRF token ({0} : {1}) ", tokenResponse.StatusCode, tokenResponse.ErrorMessage));
            }

            CsrfTokenResponse csrfTokenResponse = SimpleJson.DeserializeObject <CsrfTokenResponse>(tokenResponse.Content);

            CsrfTokenCache tokenCache = new CsrfTokenCache();

            tokenCache.received = DateTime.Now;
            tokenCache.csrf     = csrfTokenResponse.csrf;

            return(tokenCache);
        }
Ejemplo n.º 3
0
        private bool _IsTokenCacheValid(CsrfTokenCache _cache)
        {
            if (_cache == null)
            {
                return(false);
            }

            if (_cache.csrf == null)
            {
                return(false);
            }

            System.TimeSpan timeInterval = (DateTime.Now - _cache.received);

            if (timeInterval.TotalMinutes > CSRF_CACHE_INTERVAL)
            {
                return(false);
            }

            return(true);
        }