Dla zapewnienia bezpieczeństwa stosuje się certyfikaty, muszą to być jednak certyfikaty zaufane tj. potwierdzone przez kogoś innego (ważniejszego, komu ufamy). Nie zawsze programiści o tym pamiętają chociaż zdobycie takie certyfikatu nie jest trudne – są nawet za darmo np. StartSSL (CA), Commodo. Gdyby jednak ktoś szedł w zaparte i nie chciał usłuchać mojej rady to można zastosować taki trik:
if (validateServerCertificate)
{
ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateRemoteCertificate);
}
private static bool ValidateRemoteCertificate(object sender,
X509Certificate certificate,
X509Chain chain,
SslPolicyErrors policyErrors)
{
return true;
}
Źródło: http://stackoverflow.com/questions/6362393/wcf-authentication-x509-certificate - w tym artykule jest też wiele ciekawych linków odnośnie WCF.