configurar wcf soaphttpclientprotocol certificate-revocation

configurar binding wcf



¿Cómo desactivar la revocación de certificados para un cliente del servicio WCF? (2)

Puede configurar las opciones de validación y revocación de certificados en el archivo de configuración para su aplicación:

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

¿Cómo puedo desactivar la revocación de certificados para un cliente del servicio WCF? El proxy del cliente fue generado por wsdl.exe y hereda SoapHttpClientProtocol.


Creo que estás buscando ServicePointManager.ServerCertificateValidationCallback :

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

Que toma un delegado RemoteCertificateValidationCallback :

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

Nunca he tratado con un certificado revocado antes (tengo mano para manejar otros problemas, como los SSL caducados), pero supongo que harías algo como:

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; } }