public async Task <bool> ValidateAsync(X509Certificate2 userCertificate, bool skipVerification = false) { var isValid = false; var exceptions = new List <string>(); try { if (skipVerification || userCertificate.Verify()) { if (_allowedCerts == null) { isValid = true; } else { foreach (var allowedCertificate in await _allowedCerts.GetAllCertificatesAsync()) { isValid |= userCertificate.Equals(allowedCertificate); } } } } catch (Exception ex) { exceptions.Add(ex.Message); } return(isValid); }
public async Task <HttpClient> GetHttpClientAsync(string url) { var requestHandler = new WebRequestHandler(); if (_certificationProvider != null) { var certificates = await _certificationProvider.GetAllCertificatesAsync(); if (certificates != null) { foreach (var certificate in certificates) { requestHandler.ClientCertificates.Add(certificate); } } } if (!String.IsNullOrWhiteSpace(WebProxyUrl)) { requestHandler.Proxy = new WebProxy(WebProxyUrl); } if (SkipSslValidationCheck) { requestHandler.ServerCertificateValidationCallback += (sender, certificate, chain, errors) => true; } return(new HttpClient(requestHandler) { BaseAddress = new Uri(url) }); }