System.Net.Http.WinHttpHandler.WinHttpHandler.SetRequestHandleClientCertificateOptions C# (CSharp) Method

SetRequestHandleClientCertificateOptions() private method

private SetRequestHandleClientCertificateOptions ( Interop.WinHttp.SafeWinHttpHandle requestHandle, Uri requestUri ) : void
requestHandle Interop.WinHttp.SafeWinHttpHandle
requestUri System.Uri
return void
        private void SetRequestHandleClientCertificateOptions(SafeWinHttpHandle requestHandle, Uri requestUri)
        {
            if (requestUri.Scheme != UriScheme.Https)
            {
                return;
            }

            X509Certificate2 clientCertificate = null;
            if (_clientCertificateOption == ClientCertificateOption.Manual)
            {
                clientCertificate = WinHttpCertificateHelper.GetEligibleClientCertificate(ClientCertificates);
            }
            else
            {
                clientCertificate = WinHttpCertificateHelper.GetEligibleClientCertificate();
            }

            if (clientCertificate != null)
            {
                SetWinHttpOption(
                    requestHandle,
                    Interop.WinHttp.WINHTTP_OPTION_CLIENT_CERT_CONTEXT,
                    clientCertificate.Handle,
                    (uint)Marshal.SizeOf<Interop.Crypt32.CERT_CONTEXT>());
            }
            else
            {
                SetNoClientCertificate(requestHandle);
            }
        }