Ejemplo n.º 1
0
 /// <summary>
 /// Certificate validator.
 /// </summary>
 /// <param name="sender">The current sender.</param>
 /// <param name="certificate">The certificate</param>
 /// <param name="chain">The certificate chain.</param>
 /// <param name="sslPolicyErrors">The policy error.</param>
 /// <returns>True if the certificate is valid else false.</returns>
 private bool OnCertificateValidation(object sender, X509Certificate certificate,
                                      X509Chain chain, SslPolicyErrors sslPolicyErrors)
 {
     // Certificate should be validated.
     if (_connection.ValidateCertificate)
     {
         // If the certificate is valid
         // return true.
         if (sslPolicyErrors == SslPolicyErrors.None)
         {
             return(true);
         }
         else
         {
             // Create a new certificate collection
             // instance and return false.
             _sslCertificate = new Nequeo.Security.X509Certificate2Info(
                 certificate as X509Certificate2, chain, sslPolicyErrors);
             return(false);
         }
     }
     else
     {
         // Return true.
         return(true);
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Certificate override validator.
        /// </summary>
        /// <param name="sender">The current sender.</param>
        /// <param name="certificate">The certificate</param>
        /// <param name="chain">The certificate chain.</param>
        /// <param name="sslPolicyErrors">The policy error.</param>
        /// <returns>True if the certificate is valid else false.</returns>
        private bool OnCertificateValidationOverride(object sender, X509Certificate certificate,
                                                     X509Chain chain, SslPolicyErrors sslPolicyErrors)
        {
            // Create a new instance of the x509 certificate
            // information class.
            _sslCertificate = new Nequeo.Security.X509Certificate2Info(
                certificate as X509Certificate2, chain, sslPolicyErrors);

            return(true);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Certificate validator.
        /// </summary>
        /// <param name="sender">The current sender.</param>
        /// <param name="certificate">The certificate</param>
        /// <param name="chain">The certificate chain.</param>
        /// <param name="sslPolicyErrors">The policy error.</param>
        /// <returns>True if the certificate is valid else false.</returns>
        private bool OnCertificateValidation(object sender, X509Certificate certificate,
                                             X509Chain chain, SslPolicyErrors sslPolicyErrors)
        {
            // Create a new instance of the x509 certificate
            // information class.
            _sslCertificate = new Nequeo.Security.X509Certificate2Info(
                certificate as X509Certificate2, chain, sslPolicyErrors);

            // Get the current error level.
            if (sslPolicyErrors == SslPolicyErrors.None)
            {
                return(true);
            }
            else if (sslPolicyErrors == SslPolicyErrors.RemoteCertificateNotAvailable)
            {
                return(false);
            }
            else if (sslPolicyErrors == SslPolicyErrors.RemoteCertificateChainErrors)
            {
                return(false);
            }
            else
            {
                //Remote Certificate Name Mismatch
                System.Security.Policy.Zone z =
                    System.Security.Policy.Zone.CreateFromUrl(((HttpWebRequest)sender).RequestUri.ToString());

                // Get the security zone for
                // the current request URI.
                if (z.SecurityZone == System.Security.SecurityZone.Intranet ||
                    z.SecurityZone == System.Security.SecurityZone.MyComputer ||
                    z.SecurityZone == System.Security.SecurityZone.NoZone ||
                    z.SecurityZone == System.Security.SecurityZone.Trusted)
                {
                    return(true);
                }

                // Return false otherwise.
                return(false);
            }
        }