WCF中的证书验证

时间:2012-02-27 12:14:18

标签: c# wcf certificate x509

我必须检查一个特定的证书。不幸的是,我不知道如何才能做到这一点。我要验证的证书是由我自己的ca.签署的。我需要检查整个证书链。验证应该在C#中完成。

亲切的问候, 迈克尔

1 个答案:

答案 0 :(得分:3)

如果您想要执行所有操作,包括在代码中验证链,那么您需要implement "custom validation" and integrate that into the WCF Host

Client.ServiceCertificate.Authentication.CertificateValidationMode =
              X509CertificateValidationMode.Custom;
Client.ServiceCertificate.Authentication.CustomCertificateValidator =
    new MyCertificateValidator();

为了自己验证链条,您应该查看X509ChainX509Store - 了解如何实施此类链验证,请查看Mono's implementation { {1}} ...基本上您使用Verify方法在X509Certificate2Collection上搜索父级,依此类推......具有自定义验证的验证条件取决于您(有效签名,未过期) ...)。

MSDN上的一些参考链接: