public async Task Validate(object sender, BackchannelCertificateValidationContext context, Func <object, BackchannelCertificateValidationContext, Task> next)
        {
            var isValid = base.Validate(sender, context.Certificate, context.Chain, context.SslPolicyErrors);

            if (isValid)
            {
                context.Validated();
            }
            else
            {
                await next(sender, context);
            }
        }
        public async Task Validate(object sender, BackchannelCertificateValidationContext context, Func <object, BackchannelCertificateValidationContext, Task> next)
        {
            //ToDo: Review
            bool backchannelLocalValidatorEnabled = true;
            var  found = true;//AppSettingsConfigurationManager.TryGetSettingAndParse<bool>("backchannelLocalValidatorEnabled", false, out backchannelLocalValidatorEnabled);

            if (!backchannelLocalValidatorEnabled)
            {
                return;
            }
#if (DEBUG)
            var webRequest = sender as HttpWebRequest;
            if (webRequest == null)
            {
                return;
            }

            var isLocal = Utility.IsLocalIpAddress(webRequest.Host);
            if (webRequest != null && isLocal)
            {
                foreach (X509ChainElement chainElement in context.Chain.ChainElements)
                {
                    string thumbprint = chainElement.Certificate.Thumbprint;
                    if (thumbprint != null && this._validThumbprints.Contains(thumbprint))
                    {
                        context.Validated();
                        break;
                    }
                }
            }
            else
            {
                await next(sender, context);
            }
#endif
        }
Beispiel #3
0
 protected override bool ValidateInternal(BackchannelCertificateValidationContext context)
 {
     context.Validated();
     return(true);
 }