Exemple #1
0
 public static bool ValidateServerCertificate(object sender,
                                              X509Certificate certificate, X509Chain chain,
                                              SslPolicyErrors sslPolicyErrors)
 {
     if (sslPolicyErrors ==
         SslPolicyErrors.RemoteCertificateChainErrors)
     {
         return(false);
     }
     else if (sslPolicyErrors ==
              SslPolicyErrors.RemoteCertificateNameMismatch)
     {
         System.Security.Policy.Zone z =
             System.Security.Policy.Zone.CreateFromUrl
                 (((HttpWebRequest)sender).RequestUri.ToString());
         if (z.SecurityZone ==
             System.Security.SecurityZone.Intranet ||
             z.SecurityZone ==
             System.Security.SecurityZone.MyComputer)
         {
             return(true);
         }
         return(false);
     }
     return(true);
 }
    public static bool IsBlocked(string Name)
    {
        bool zone_bool;

        System.Security.Policy.Zone my_zone = System.Security.Policy.Zone.CreateFromUrl(Name);
        if (my_zone.SecurityZone != System.Security.SecurityZone.MyComputer)
        {
            zone_bool = true;
        }
        else
        {
            zone_bool = false;
        }

        return(zone_bool);
    }
Exemple #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);
            }
        }