From e1a22b315dae5fc1335114908a545cd706af6c60 Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Thu, 17 May 2018 06:25:40 +1200 Subject: [PATCH] Android HttpClientHandler.ClientCertificates fix (#2270) --- .../HttpConnection.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Microsoft.AspNetCore.Http.Connections.Client/HttpConnection.cs b/src/Microsoft.AspNetCore.Http.Connections.Client/HttpConnection.cs index 176554485f..ae0af781ec 100644 --- a/src/Microsoft.AspNetCore.Http.Connections.Client/HttpConnection.cs +++ b/src/Microsoft.AspNetCore.Http.Connections.Client/HttpConnection.cs @@ -486,10 +486,16 @@ namespace Microsoft.AspNetCore.Http.Connections.Client { httpClientHandler.CookieContainer = _httpConnectionOptions.Cookies; } - if (_httpConnectionOptions.ClientCertificates != null) + + // Only access HttpClientHandler.ClientCertificates if the user has configured client certs + // Mono does not support client certs and will throw NotImplementedException + // https://github.com/aspnet/SignalR/issues/2232 + var clientCertificates = _httpConnectionOptions.ClientCertificates; + if (clientCertificates?.Count > 0) { - httpClientHandler.ClientCertificates.AddRange(_httpConnectionOptions.ClientCertificates); + httpClientHandler.ClientCertificates.AddRange(clientCertificates); } + if (_httpConnectionOptions.UseDefaultCredentials != null) { httpClientHandler.UseDefaultCredentials = _httpConnectionOptions.UseDefaultCredentials.Value;