Frage

Wie kann ich Zertifikatsperrung deaktivieren für ein WCF-Service-Client? Die Client-Proxy wurde von wsdl.exe erzeugt und erbt Soaphttpclientprotocol.

War es hilfreich?

Lösung

Ich glaube, Sie suchen ServicePointManager.ServerCertificateValidationCallback:

  

http://msdn.microsoft.com /en-gb/library/system.net.servicepointmanager.servercertificatevalidationcallback.aspx

Welche nimmt einen RemoteCertificateValidationCallback Delegierten:

  

http://msdn.microsoft.com /en-gb/library/system.net.security.remotecertificatevalidationcallback.aspx

Ich habe noch nie mit einem gesperrten Zertifikat behandelt vor (ich habe die Hand zu anderen Themen zu behandeln wie abgelaufenes SSL), aber ich vermute, Sie würden nur so etwas wie:

class Program
{
    static void Main(string[] args)
    {
        ServicePointManager.ServerCertificateValidationCallback +=
            new RemoteCertificateValidationCallback(ValidateCertificate);

        // Do WCF calls...
    }

    public static bool ValidateCertificate(object sender, X509Certificate cert, 
                              X509Chain chain, SslPolicyErrors sslPolicyErrors)
    {
        if(sslPolicyErrors == SslPolicyErrors.RemoteCertificateChainErrors)
        {
            foreach(X509ChainStatus chainStatus in chain.ChainStatus)
            {
                if(chainStatus.Status == X509ChainStatusFlags.Revoked)
                {
                    return true;
                }
            }
        }

        return false;
    }
}

Andere Tipps

Sie können für Ihre Anwendung in der Konfigurationsdatei Zertifikatsvalidierung und Sperroptionen:

http: // www .request-response.com / Blog / PermaLink, guid, e9bb929b-d0b4-4626-b302-1d2715fc344a.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top