예제 #1
0
        public ApiResponse <Token> GetAccessToken <T>(T credentials) where T : IOAuthCredentials
        {
            ClientCredentials credentials1 = (object)credentials as ClientCredentials;

            if (credentials1 != null)
            {
                return(this.GetAccessToken(credentials1));
            }
            PasswordCredentials credentials2 = (object)credentials as PasswordCredentials;

            if (credentials2 != null)
            {
                return(this.GetAccessToken(credentials2));
            }
            AuthorizationCodeCredentials credentials3 = (object)credentials as AuthorizationCodeCredentials;

            if (credentials3 != null)
            {
                return(this.GetAccessToken(credentials3));
            }
            RefreshTokenCredentials credentials4 = (object)credentials as RefreshTokenCredentials;

            if (credentials4 != null)
            {
                return(this.GetAccessToken(credentials4));
            }
            throw new AuthenticationException("Unsupported credential type");
        }
예제 #2
0
 public ApiResponse <Token> GetAccessToken(AuthorizationCodeCredentials credentials)
 {
     return(this.GetAccessToken((IDictionary <string, string>) new Dictionary <string, string>()
     {
         {
             "code",
             credentials.Code
         },
         {
             "redirect_uri",
             credentials.RedirectUri
         },
         {
             "client_id",
             credentials.ClientId
         },
         {
             "client_secret",
             credentials.ClientSecret
         },
         {
             "grant_type",
             credentials.GrantType
         }
     }, (string)null));
 }
예제 #3
0
        public async Task <ApiResponse <Token> > GetAccessTokenAsync <T>(T credentials, CancellationToken cancellationToken = default(CancellationToken)) where T : IOAuthCredentials
        {
            ClientCredentials credentials1 = (object)(T)credentials as ClientCredentials;

            if (credentials1 != null)
            {
                return(await this.GetAccessTokenAsync(credentials1, cancellationToken));
            }
            PasswordCredentials credentials2 = (object)(T)credentials as PasswordCredentials;

            if (credentials2 != null)
            {
                return(await this.GetAccessTokenAsync(credentials2, cancellationToken));
            }
            AuthorizationCodeCredentials credentials3 = (object)(T)credentials as AuthorizationCodeCredentials;

            if (credentials3 != null)
            {
                return(await this.GetAccessTokenAsync(credentials3, cancellationToken));
            }
            RefreshTokenCredentials credentials4 = (object)(T)credentials as RefreshTokenCredentials;

            if (credentials4 != null)
            {
                return(await this.GetAccessTokenAsync(credentials4, cancellationToken));
            }
            throw new AuthenticationException("Unsupported credential type");
        }
예제 #4
0
 public async Task <ApiResponse <Token> > GetAccessTokenAsync(AuthorizationCodeCredentials credentials, CancellationToken cancellationToken = default(CancellationToken))
 {
     return(await this.GetAccessTokenAsync((IDictionary <string, string>) new Dictionary <string, string>()
     {
         {
             "code",
             credentials.Code
         },
         {
             "redirect_uri",
             credentials.RedirectUri
         },
         {
             "client_id",
             credentials.ClientId
         },
         {
             "client_secret",
             credentials.ClientSecret
         },
         {
             "grant_type",
             credentials.GrantType
         }
     }, (string)null, cancellationToken));
 }