Tailspin.Surveys.Web.Security.AuthenticationContextExtensions.AcquireTokenByAuthorizationCodeAsync C# (CSharp) Method

AcquireTokenByAuthorizationCodeAsync() public static method

Acquires security token from the authority using an authorization code previously received. This method does not lookup token cache, but stores the result in it, so it can be looked up using other methods such as M:Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.AcquireTokenSilentAsync(System.String,System.String,Microsoft.IdentityModel.Clients.ActiveDirectory.UserIdentifier).
public static AcquireTokenByAuthorizationCodeAsync ( this authenticationContext, string authorizationCode, Uri redirectUri, AdalCredential credentials, string resource ) : Task
authenticationContext this The instance to use for token acquisition.
authorizationCode string The authorization code received from service authorization endpoint.
redirectUri System.Uri The redirect address used for obtaining authorization code.
credentials AdalCredential A instance containing the credentials to use for token acquisition.
resource string Identifier of the target resource that is the recipient of the requested token. It can be null if provided earlier to acquire authorizationCode.
return Task
        public static Task<AuthenticationResult> AcquireTokenByAuthorizationCodeAsync(
            this AuthenticationContext authenticationContext,
            string authorizationCode,
            Uri redirectUri,
            AdalCredential credentials,
            string resource)
        {
            Guard.ArgumentNotNull(authenticationContext, nameof(authenticationContext));
            Guard.ArgumentNotNull(credentials, nameof(credentials));

            switch (credentials.CredentialType)
            {
                case AdalCredentialType.ClientAssertionCertificate:
                    return authenticationContext.AcquireTokenByAuthorizationCodeAsync(authorizationCode, redirectUri,
                        credentials.ClientAssertionCertificate, resource);
                case AdalCredentialType.ClientCredential:
                    return authenticationContext.AcquireTokenByAuthorizationCodeAsync(authorizationCode, redirectUri,
                        credentials.ClientCredential, resource);
                default:
                    // This is not surfaced well from ADAL, but this works in the version referenced in this application.
                    throw new AdalException("invalid_credential_type");
            }
        }