/// <summary>
        /// Checks the specified configuration manager.
        /// </summary>
        /// <param name="configurationManager">The configuration manager.</param>
        /// <returns></returns>
        public override ProblemCollection Check(ServiceModelConfigurationManager configurationManager)
        {
            foreach (ServiceBehaviorElement behaviorElement in configurationManager.ServiceModelSection.Behaviors.ServiceBehaviors)
            {
                ServiceDebugElement serviceDebug =
                    ServiceModelConfigurationManager.GetBehaviorExtensionElement <ServiceDebugElement>(behaviorElement);

                if (serviceDebug.IncludeExceptionDetailInFaults)
                {
                    Resolution resolution = base.GetResolution(behaviorElement.Name);
                    Problem    problem    = new Problem(resolution);
                    problem.SourceFile = base.SourceFile;
                    base.Problems.Add(problem);
                }
            }
            return(base.Problems);
        }
        /// <summary>
        /// Checks the specified configuration manager.
        /// </summary>
        /// <param name="configurationManager">The configuration manager.</param>
        /// <returns></returns>
        public override ProblemCollection Check(ServiceModelConfigurationManager configurationManager)
        {
            foreach (EndpointBehaviorElement behaviorElement in configurationManager.ServiceModelSection.Behaviors.EndpointBehaviors)
            {
                ClientCredentialsElement clientCredentials =
                    ServiceModelConfigurationManager.GetBehaviorExtensionElement <ClientCredentialsElement>(behaviorElement);

                X509RevocationMode revocationMode = clientCredentials.ServiceCertificate.Authentication.RevocationMode;

                if (revocationMode == X509RevocationMode.NoCheck)
                {
                    Resolution resolution = base.GetResolution(revocationMode.ToString());
                    Problem    problem    = new Problem(resolution);
                    problem.SourceFile = base.SourceFile;
                    base.Problems.Add(problem);
                }
            }
            return(base.Problems);
        }
        /// <summary>
        /// Checks the specified configuration manager.
        /// </summary>
        /// <param name="configurationManager">The configuration manager.</param>
        /// <returns></returns>
        public override ProblemCollection Check(ServiceModelConfigurationManager configurationManager)
        {
            foreach (ServiceBehaviorElement behaviorElement in configurationManager.ServiceModelSection.Behaviors.ServiceBehaviors)
            {
                ServiceCredentialsElement serviceCredentials =
                    ServiceModelConfigurationManager.GetBehaviorExtensionElement <ServiceCredentialsElement>(behaviorElement);

                X509CertificateValidationMode validationMode = serviceCredentials.ClientCertificate.Authentication.CertificateValidationMode;

                if (validationMode != X509CertificateValidationMode.ChainTrust)
                {
                    Resolution resolution = base.GetResolution(validationMode.ToString(),
                                                               X509CertificateValidationMode.ChainTrust.ToString());
                    Problem problem = new Problem(resolution);
                    problem.SourceFile = base.SourceFile;
                    base.Problems.Add(problem);
                }
            }
            return(base.Problems);
        }