我目前在电源 shell 中使用以下代码:

$TrustAll=$TAAssembly.CreateInstance("Local.ToolkitExtensions.Net.CertificatePolicy.TrustAll")
    [System.Net.ServicePointManager]::CertificatePolicy=$TrustAll

如何在C#中做到这一点?

最佳答案

这是一个可以信任每个证书的示例。

using System;
using System.IO;
using System.Net;
using System.Security.Cryptography.X509Certificates;

public class Program : ICertificatePolicy {

    public bool CheckValidationResult (ServicePoint sp,
        X509Certificate certificate, WebRequest request, int error)
    {
        return true;
    }

    public static void Main (string[] args)
    {
        ServicePointManager.CertificatePolicy = new Program ();
        WebRequest wr = WebRequest.Create (args [0]);
        Stream stream = wr.GetResponse ().GetResponseStream ();
        Console.WriteLine (new StreamReader (stream).ReadToEnd ());
    }
}

如果您想进一步了解该主题(例如,替代方法),建议您阅读Mono关于该主题的Wiki article

10-04 12:19
查看更多