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");
}
}