private async Task ReadCredentials(HttpRequestMessage request) { // In C-Core the call credential auth metadata is only applied if the channel is secure // The equivalent in grpc-dotnet is only applying metadata if HttpClient is using TLS // HttpClient scheme will be HTTP if it is using H2C (HTTP2 without TLS) if (Channel.Address.Scheme == Uri.UriSchemeHttps) { var configurator = new DefaultCallCredentialsConfigurator(); if (Options.Credentials != null) { await GrpcProtocolHelpers.ReadCredentialMetadata(configurator, Channel, request, Method, Options.Credentials).ConfigureAwait(false); } if (Channel.CallCredentials?.Count > 0) { foreach (var credentials in Channel.CallCredentials) { await GrpcProtocolHelpers.ReadCredentialMetadata(configurator, Channel, request, Method, credentials).ConfigureAwait(false); } } } else { GrpcCallLog.CallCredentialsNotUsed(Logger); } }