C#证书固定

C#证书固定,c#,validation,ssl,certificate,webclient,C#,Validation,Ssl,Certificate,Webclient,如何最好地验证WebClient中的证书 目前,我有以下几点: class SafeClient : WebClient { protected override WebRequest GetWebRequest(Uri address) { var request = base.GetWebRequest(address); byte[] embeddedCert; using (Stream certStream = Asse

如何最好地验证WebClient中的证书

目前,我有以下几点:

class SafeClient : WebClient
{
    protected override WebRequest GetWebRequest(Uri address)
    {
        var request = base.GetWebRequest(address);

        byte[] embeddedCert;
        using (Stream certStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Test.Resources.test.pfx"))
        {
            embeddedCert = new byte[certStream.Length];
            certStream.Read(embeddedCert, 0, (int)certStream.Length);
        }

        var cert = new X509Certificate2(embeddedCert, "Pass");

        (request as HttpWebRequest).ClientCertificates.Add(cert);

        return request;
    }
}
但是如何在服务器的响应中检查证书。我不希望任何人都能读/写回应/请求white Charles或


提前向您表示感谢,并向您表示来自德国的问候。

如果我正确理解您的目的,您希望在提出请求后获得有关服务器证书的信息

为此HttpWebRequest提供一名特别代表

因此,您的代码可能如下所示:

var request = (HttpWebRequest)WebRequest.Create("https://");
request.ServerCertificateValidationCallback += (sender, cert, chain, error) =>
{
    //TODO:implement your custom logic
};
我希望,这个链接也会对你有用。