Esempio n. 1
0
        public async Task <IAuthenticationTicket> RenewAccessTokenAsync(IAuthenticationTicket currentAuthenticationTicket, CancellationToken cancellationToken)
        {
            this.ValidateOptionsMapping();

            var authenticateResult = await this.authenticationManager.GetAsync(cancellationToken).ConfigureAwait(false);

            var authenticationTicket = new AuthenticationTicket(authenticateResult);

            return(await this.GetNewAccessTokenAsync(authenticationTicket, authenticateResult, cancellationToken).ConfigureAwait(false));
        }
Esempio n. 2
0
        public async Task <IAuthenticationTicket> RenewAccessTokenAsync(IAuthenticationTicket currentAuthenticationTicket, CancellationToken cancellationToken)
        {
            var result = await SpotifySemaphoreUtils.ExecuteAsync(
                this.semaphoreProvider.Get(),
                async innerCt =>
            {
                var authenticateResult   = await this.authenticationManager.GetAsync(innerCt).ConfigureAwait(false);
                var authenticationTicket = new AuthenticationTicket(authenticateResult);

                return(await this.GetNewAccessTokenAsync(authenticationTicket, authenticateResult, innerCt).ConfigureAwait(false));
            },
                cancellationToken).ConfigureAwait(false);

            return(result);
        }
        public async Task <IAuthenticationTicket> RenewAccessTokenAsync(IAuthenticationTicket currentAuthenticationTicket, CancellationToken cancellationToken)
        {
            SpotifyArgumentAssertUtils.ThrowIfNull(currentAuthenticationTicket, nameof(currentAuthenticationTicket));

            var result = await SpotifySemaphoreUtils.ExecuteAsync(
                this.semaphore,
                async innerCt =>
            {
                if (this.authenticationTicket == null ||
                    this.authenticationTicket.AccessToken.IsExpired(this.clock) ||
                    this.authenticationTicket == currentAuthenticationTicket)
                {
                    await this.LoadAuthenticationTicketAsync(innerCt).ConfigureAwait(false);
                }

                return(this.authenticationTicket);
            },
                cancellationToken).ConfigureAwait(false);

            return(result);
        }
        public async Task <IAuthenticationTicket> RenewAccessTokenAsync(IAuthenticationTicket currentAuthenticationTicket, CancellationToken cancellationToken)
        {
            if (currentAuthenticationTicket == null)
            {
                throw new ArgumentNullException(nameof(currentAuthenticationTicket));
            }

            var result = await this.semaphore.ExecuteAsync(
                async innerCt =>
            {
                if (this.authenticationTicket == null ||
                    !this.authenticationTicket.AccessToken.IsValid(this.dateTimeOffsetProvider) ||
                    this.authenticationTicket == currentAuthenticationTicket)
                {
                    await this.LoadAuthenticationTicketAsync(innerCt).ConfigureAwait(false);
                }

                return(this.authenticationTicket);
            },
                cancellationToken).ConfigureAwait(false);

            return(result);
        }
Esempio n. 5
0
        /// <summary>
        /// The refresh grid view.
        /// </summary>
        private void RefreshGridView()
        {
            if (cmbKey.Items.Count == 0)
            {
                cmbKey.DataSource = Dict.Keys.ToList();
            }

            IAuthenticationTicket ticket = Manager.GetAuthenticationTicket();

            Dict["(Class)ticket"] = ticket == null ? "null" : ticket.ToString();

            Dict["(Bool)IsAuthenticated"] = Manager.IsAuthenticated ? "True" : "False";

            dataGridView1.DataSource = (from v in Dict
                                        select new
            {
                v.Key,
                v.Value
            }
                                        ).ToArray();
            dataGridView1.Columns[0].Width = 200;
            dataGridView1.Columns[1].Width = 400;
        }
 public CookieAuthenticationManager(IAuthenticationProvider authenticationProvider, IAuthenticationTicket ticket)
 {
     this._authenticationProvider = authenticationProvider;
     this._authenticationTicket = ticket;
 }
Esempio n. 7
0
        private async Task <HttpResponseMessage> SendAuthenticatedAsync(HttpRequestMessage request, IAuthenticationTicket ticket, CancellationToken cancellationToken)
        {
            request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", ticket.AccessToken.Token);
            var response = await base.SendAsync(request, cancellationToken).ConfigureAwait(false);

            return(response);
        }